html结构如下:
<div></div>
JS如下:
$("div").data("blah", "hello"); // blah设置为hello
那么这个blah的“hello”的值我在那个DIV里面是不是看不到?如果看不到,那在开发的时候怎么记得这东西?
html结构如下:
<div></div>
JS如下:
$("div").data("blah", "hello"); // blah设置为hello
那么这个blah的“hello”的值我在那个DIV里面是不是看不到?如果看不到,那在开发的时候怎么记得这东西?
确实看不见的。
至于如何修改和获取,获取$ele.data('key')
和设置$ele.data('key','value')
为何建议使用data而不用在html上进行属性设置,我也不知道啊。求具体解答。
data上倒是通常可以用来存放对象,这个在jquery面向对象的插件写法上很常见哦。
如果题主希望记住的话,直接存在该 div
的自定义属性 blah
里面即可:
$("div").attr('blah', $("div").data("blah"));
效果如下:
再取值的话就可以直接读 div
的属性值:
$("div").attr('blah')
实际上,一般直接读 $("div").data("blah")
的值即可,如果题主一定需要存在 DOM
内,就按照上述写法吧,个人感觉有些 hard code
,而且兼容性也需验证。
jQuery在某个版本里,.data(key, value)中value可以存储任意对象而不限于简单类型。
为此付出的代价是,把dom用一个(印象中)叫jQuery-ID的东西进行唯一标识,然后用jQuery.cache做k-v字典,于是dom上只能看到jQuery-ID,而实际上data数据都是存在那个字典里的。
10 回答11.2k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
$().data()方法设置数据的时候用一个唯一自增的id将jQuery.cache跟DOM对象关联起来。
详细请参考:http://www.cnblogs.com/snandy/archive/2011/06/10/2077298.html