说,
<a id="link-one" href="#" data-status="true">Anchor</a>
Run Code Online (Sandbox Code Playgroud)
以下代码在控制台上写入"true":
console.log($('#link-one').data('status'));
Run Code Online (Sandbox Code Playgroud)
而且,当我改变这样的值时:
$('#link-one').attr('data-status', 'false');
Run Code Online (Sandbox Code Playgroud)
值会发生变化,我可以通过使用Chrome检查器检查元素来查看.是的,它确实在变化.
但是,在更改之后再分配/更改值然后在更改后再次访问它时返回初始值,而不是修改后的新值.我需要访问当前值,即更改后的值.
console.log($('#link-one').data('status')); // writes "true"
$('#link-one').attr('data-status', 'false');
console.log($('#link-one').data('status')); // writes "true" again
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?或者这是jQuery的默认行为(如果是,我怎样才能实现我需要的)?
在data-attribute
jQuery第一次访问它时进行解析,并在加载文档时进行默认解析.
如果要将数据值设置为false,则必须执行以下操作:
$("#link-one").data("status", false);
Run Code Online (Sandbox Code Playgroud)
而且你可以通过以下方式访问它:
$("#link-one").data("status"); // False now
Run Code Online (Sandbox Code Playgroud)
关于HTML5 data-*属性:这个低级方法不检索data-*属性,除非更方便的.data()方法已经检索它们.
这意味着,一旦解析,它将不会再次解析它.
归档时间: |
|
查看次数: |
103 次 |
最近记录: |