访问动态加载对象的“数据”属性?

时间:2011-09-13 07:58:47

标签: jquery ajax

我在访问动态(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中是不可见的

1 个答案:

答案 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";