也许我错过了一些东西,但我使用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”字符串?
答案 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()
方法。