我在访问动态(ajax)加载文件的数据属性时遇到了一些麻烦。
例如,我可能会加载一个包含结果的文件:
<div id="blah" class="hello" data-something="or_other" />
然后做jquery:
var blah_id = $('#id').attr('id'),
blah_class = $('#blah').attr('class'),
blah_something = $('#blah').data('something');
我最终得到了:
blah_id === 'blah';
blah_class === 'hello';
blah_something === null;
我知道html是可以的,因为如果我在执行ajax调用之前将这个结果放在页面上,我会得到我需要的一切。
我不明白数据属性有什么特别之处吗?
更新 我注意到动态加载的文件实际打印出数据属性 - 即。 在打印的html中可见。据我所知,它不应该在html中可见,当它在静态加载的页面上工作时,它在打印的html中是不可见的。
答案 0 :(得分:2)
这很奇怪,seems to work here。 .data()
方法尝试解析值并将其转换为基础类型:
例如:
<div data-role="page" data-last-value="43" data-hidden="true" data-options='{"name":"John"}'></div>
$("div").data("role") === "page";
$("div").data("lastValue") === 43;
$("div").data("hidden") === true;
$("div").data("options").name === "John";