2

我有一个工作功能:

$('#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>'
)

我正在尝试data-content="Hint 1 Content"使用 jQuery 进行编辑。

我的功能是:

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

然后我打电话loadContent(RIDDLE),但这不会改变data-content我标签中的<a>标签。

4

2 回答 2

2

data属性映射到datasetDOM Element 对象的属性,您的代码应该可以工作,您看不到它已更改,因为它是属性而不是属性。

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

如果您想更改属性,您可以使用attr方法而不是data方法,但是请注意,jQuery 的处理data-*方式与dataset属性不同(旧浏览器 + IE 不支持该属性)。

于 2013-02-14T12:32:19.390 回答
1

这应该有效。您的问题的可能解决方案:您是否创建了多个具有相同元素的元素id

也试试这个更详细,并用于console.log验证:

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'))
于 2013-02-14T12:35:09.047 回答