gpt4 book ai didi

jQuery 选择器在 Safari 中返回重复元素

转载 作者:行者123 更新时间:2023-12-01 00:59:35 26 4
gpt4 key购买 nike

我有一个 jQuery 选择器,可以按标签名称和类查询元素。在我希望返回三个元素的查询中,Safari(适用于 Windows 的 v3.1.1)返回一个额外的元素。

原因似乎是数字 ID*。将 ID 更改为非数字可以消除重复元素。奇怪的是,将第一个元素的 ID 更改为其他数字会对最终结果计数产生看似随机的影响。 ID 为 4 会将结果计数增加到 5。 0、9 和 1234 都返回四个元素。

<div class="mydiv" id="1"></div>
<div class="mydiv" id="2"></div>
<div class="mydiv" id="3"></div>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.1.min.js"></script>
<script type="text/javascript">
$(function()
{
var div = $('div.mydiv');
alert( div.length ); // Safari 3.1.1 returns 4
alert( $.unique( div ).length ); // Safari 3.1.1 returns 3
} );
</script>

Firefox 3 和 IE 7 在两个警报框中都显示 3。

* 我知道数字 ID are not valid HTML identifiers 我使用的 jqGrid 插件默认使用数字作为行 ID。 我会考虑更改此行为,但同时我很好奇为什么这会影响上述查询。

编辑

我已经有一段时间没有查看 jqGrid 的数据检索代码了。事实证明,我可以在服务器上将行 ID 设置为我想要的任何内容。

最佳答案

简短回答:使用无效 HTML 时,您总是会遇到不可预测的行为。 (即使您所做的事情 95% 的时间都有效)

问题正如您所说,数字 ID 无效,因此在进行计数等时,浏览器可以自由地做出此假设...如果它们无效并且会导致错误,那么...这不是他们的错误。

关于jQuery 选择器在 Safari 中返回重复元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2359770/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com