jQuery.wrap导致范围错误

时间:2012-12-31 17:21:16

标签: javascript jquery

好的,这太疯狂了。

使用jQuery 1.8.3,我想在div中包含以下元素:

<div id="main" role="main">
 <h2>Item (250 x 250)</h2>
 <div id="item" style="width:250px; height:250px;background:#ccc;">&nbsp;</div>
</div>

当我尝试用另一个简单的div包装时,我在Chrome中得到'RangeError:超出最大调用堆栈大小。

$("#item").wrap("<div />");

另外,在控制台中我获取$(“#item”)它只返回一个项目;

2 个答案:

答案 0 :(得分:1)

jQuery已经有一个名为slice的函数,你用自己的plugin覆盖它。行为与预期的行为不同,可能会导致过多的递归。

答案 1 :(得分:0)

RangeError:超出了最大调用堆栈大小:您的代码中是否有无限循环?你可以发布更多代码吗?

如果按ID选择DOM元素,则只能返回一个元素。

id是唯一的。如果你有两个具有相同id的元素,jQuery将返回两个元素,但不是在每个浏览器中。在IE中,你将获得两个元素中的第一个。

定义自己的类'.item'并设置class =“item”。然后,您可以正确选择多个元素。

使用

var countOfElements = $('.selector').length;

您可以获得所选元素的数量。