Jquery 数据可以在IE中使用,但不能在chrome或firefox中使用

Jquery 数据可以在IE中使用,但不能在chrome或firefox中使用,jquery,asp.net-mvc-3,internet-explorer,google-chrome,firefox,Jquery,Asp.net Mvc 3,Internet Explorer,Google Chrome,Firefox,我有一些这样的标记: <li id="myId" data-foo="Bar">Text</li> 文本 在IE中,我使用$('#myId').data('foo')成功地获取了数据foo的值,但它在Chrome或Firefox中没有返回任何内容 关于它的价值信息: 该页面由asp.net mvc从模板生成。从包含上述元素的页面启动的弹出窗口调用尝试访问数据foo的函数我也尝试了$('#myId').attr('data-foo'),但也没有成功 谢谢你的帮助 更新

我有一些这样的标记:

<li id="myId" data-foo="Bar">Text</li>
文本 在IE中,我使用
$('#myId').data('foo')
成功地获取了
数据foo
的值,但它在Chrome或Firefox中没有返回任何内容

关于它的价值信息:
该页面由asp.net mvc从模板生成。
从包含上述
  • 元素的页面启动的弹出窗口调用尝试访问
    数据foo
    的函数
    我也尝试了
    $('#myId').attr('data-foo')
    ,但也没有成功

    谢谢你的帮助

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


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

    这对我在Chrome和Firefox中很有用

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


    我使用jQuery1.9来测试这一点。

    这对我在Chrome和Firefox中很有用

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


    我使用jQuery 1.9来测试这一点。

    我注意到您在列表项上使用了这一点。您能绝对肯定地确认您的ID是唯一的吗?这可能会在不同浏览器中导致一些不同的意外结果


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

    我注意到您正在列表项上使用此项。您是否可以绝对肯定地确认您的IDe unique?这可能会导致不同浏览器出现不同的意外结果


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

    您发布的代码没有问题。您能举一个例子说明它不起作用吗预期?您能提供一个问题说明吗?您确定页面上只有一个且只有一个id为“myId”的元素吗.IE与Chrome和FF在处理同一页面上具有相同id的多个元素时的行为不同。如你所知,共享id是违反规范的,但IE在这方面通常更宽容(但只是为了以后踢你)是的,id是唯一的。我将尝试创建一个在Chrome中失败的FIDLE。您确定ASP在呈现您的页面时不会更改元素的id吗?在构建网页时,ASP.NET经常会更改与之交互的元素的id属性。您可能要尝试“查看源代码”请在浏览器中查看您的页面,并确保您所针对的ID仍然是您期望的ID。您发布的代码没有问题。您能否提供一个示例,说明它没有按预期工作?您能否提供一个说明问题?您确定页面上只有一个且只有一个ID为“myId”的元素吗.IE与Chrome和FF在处理同一页面上具有相同id的多个元素时的行为不同。如你所知,共享id是违反规范的,但IE在这方面通常更宽容(但只是为了以后踢你)是的,id是唯一的。我将尝试创建一个在Chrome中失败的FIDLE。您确定ASP在呈现您的页面时不会更改元素的id吗?在构建网页时,ASP.NET经常会更改与之交互的元素的id属性。您可能要尝试“查看源代码”,并确保目标ID仍然是您期望的ID。感谢您的时间和回答,但我的jQuery在加载元素后运行。感谢您的时间和回答,但我的jQuery在加载元素后运行。
    <ul>
        <li id="myId" data-foo="Bar">Text</li>
    </ul>
    <script>
        alert($('#myId').data('foo'));
    </script>