0

我有一些这样的标记:

<li id="myId" data-foo="Bar">Text</li>

在 IE 中,我成功地获得了data-foowith的值$('#myId').data('foo'),但它在 Chrome 或 Firefox 中没有返回任何内容。

对于它的价值信息:
该页面是由 asp.net mvc 从模板生成的。
尝试访问的函数是data-foo从包含上述<li>元素的页面启动的弹出窗口中调用的。
我也试过$('#myId').attr('data-foo')没有运气

谢谢你尽你所能的帮助

更新 该问题与在弹出窗口启动后尝试访问该属性严格相关。

更新 2我无法隔离问题以便在 jsfiddle 中复制它。我上面说过,它与弹出弹出窗口后访问属性密切相关,但经过进一步调查,情况并非如此。有几个框架正在使用,我没有时间在所有这些框架中搜索错误,所以我找到了一个解决方法。我只是想感谢大家的努力,并为占用您的时间而投赞成票。

4

2 回答 2

2

这适用于我在 Chrome 和 Firefox 中。

这是我的测试...

<ul>
    <li id="myId" data-foo="Bar">Text</li>
</ul>
<script>
    alert($('#myId').data('foo'));
</script>

这可能失败的最可能原因是您在加载元素之前运行 jQuery,因此请确保您的脚本位于文档的末尾,或者使用$(document).ready(语法来确保 DOM 已准备好被查询。

我使用 jQuery 1.9 对此进行了测试。

于 2013-01-30T21:22:21.657 回答
1

我注意到您在列表项上使用它。您能绝对确定您的 ID 是独一无二的吗?这可能会导致跨浏览器出现一些不同的意外结果。

编辑: HTML 中的语法错误是这些问题的主要原因。我建议您逐段删除部分 HTML 代码,直到它按预期工作,然后您可以确定问题出在哪里。

于 2013-01-30T21:23:36.737 回答