2013-02-14 34 views
2

我有一个工作功能:jQuery.data( 'ABC', 'XYZ')不改变数据ABC

$('#hints').after(
    '<a href="#" id="hint" class="btn btn-large btn-success" data-toggle="popover" title="" data-content="Hint 1 Content" data-original-title="Hint 1 Title">Hint 1</a>' 
) 

我试图用jQuery编辑data-content="Hint 1 Content"

我的功能是:

function loadContent(riddle) { 
    $('#hint').data('content','h1 content') 
} 

然后我打电话loadContent(RIDDLE)但是这并不在我的<a>标签更改data-content标签。

+1

可以复制? – Curt 2013-02-14 12:31:29

回答

2

data属性映射到dataset属性DOM元素对象,你的代码应该工作,你不能看到它的改变,因为它是一个属性而不是属性。

$('#hint').data('content','h1 content') 
console.log($('#hint').data('content')) // 'h1 content' 

如果你想改变你可以用它代替data方法attr方法的属性;但是,请注意,jQuery的处理data-*不同于dataset财产(未在旧的浏览器+ IE的支持)。

1

这应该工作。可能的解决方案:您是否使用相同的id创建多个元素?

也试试这得更加详细,并使用console.log验证:在的jsfiddle

var el = $('<a href="#" id="hint">Hint 1</a>').data('abc', 'xyz'); 
console.log(el.data('abc')) 
$('#hints').after(el) 
console.log($("#hint").data('abc')) 
相关问题