我有这个HTML:
<input id='myId' type='button' data-this-page='myPage' />
如果我想将myPage
更改为其他内容,我会尝试这样做:
$("#viewer_next_page").data('this-page', 'newPage' );
这是正确的方法,因为似乎没有任何事情发生。我确保在jQuery调用之前创建了元素id。
答案 0 :(得分:2)
jQuery的.data()
方法只会将data-
属性值计入帐户 - 这是第一次。但是,当您设置它时,它会在DOM元素上设置实际的高级数据。您甚至可以使用.data()
设置复杂的对象和函数,您可以使用属性。之后,继续使用.data()
方法提取值,您就可以了。
如果您坚持使用属性,请使用其他几个答案中提到的.attr()
方法。
答案 1 :(得分:1)
尝试attr
$("#viewer_next_page").attr('data-this-page','newPage');
答案 2 :(得分:1)
你试过吗
$("#viewer_next_page").attr('data-this-page', 'newPage' );
答案 3 :(得分:1)
它已更新。您的HTML不会重新呈现。如果你看看这个:
HTML
<input id='myId' type='button' data-this-page='myPage' />
JS
console.log($("#myId").data("this-page"));
$("#myId").data('this-page', 'newPage' );
console.log($("#myId").data("this-page"));
您每次都会看到不同的输出:
MYPAGE
newPage
答案 4 :(得分:1)
这是正确的方法。您会注意到属性本身不会改变。 jQuery在内部管理data-*
属性。在页面加载时,所有data-*
属性都在内部读入jQuery。从那时起通过.data(...)
方法进行操作,操纵内部对象。因此,该属性似乎没有变化。但是,只要您将来访问这些属性var page = $('#...').data('this-page');
,就会获得正确的值。
答案 5 :(得分:0)
$("#viewer_next_page").attr('data-this-page', 'newPage' );