如何使用jQuery读取data- *属性的原始内容?

时间:2014-01-03 22:01:46

标签: javascript jquery html5 attributes

也许我错过了一些东西,但我使用data-*属性,即data-content,其中包含“apple”,“cow”等条目。突然间,当我设置{{1使用字符串“null”(我使用Chromium HTML检查:

data-content

但是当我使用jQuery阅读<p class="text" data-content="null">null</p> 时:

data-content

我得到空值,而不是“null”字符串。

所以我的问题是,如何以原始形式阅读它,所以我可以像在HTML中一样获得“null”字符串?

3 个答案:

答案 0 :(得分:6)

如果您想以原始形式阅读,则需要使用.attr代替.data。因为这就是data api所做的事情,它会解析数据属性的内容(例如JSON - &gt;对象,数字字符串值等等...)。

text_elem.attr('data-content');

或者您可以使用DOM元素的数据集(旧浏览器不支持)。

text_elem[0].dataset.content; //this will return a string

答案 1 :(得分:4)

您得到null而不是"null",因为jQuery在使用data-获取时出于某种原因决定将.data()属性解析为JSON。

要获取原始数据,请改用.attr()。这样会更快,并且不会将值复制到jQuery.cache,这通常是不必要的。

基本上,如果 需要 存储在.data()中的数据,并且如果您是{id}},则仅对data-属性使用jQuery.cache好吧,它被解析为JSON

答案 2 :(得分:0)

.find()方法可用于在XML文档中搜索指定的元素名称。对于HTML文档,如果要访问该属性,则必须使用.attr()方法。