0

好吧,这太疯狂了。

使用 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") 它只返回一个项目;

4

2 回答 2

1

jQuery 已经有一个被调用的函数slice,你正在用你自己的插件覆盖它。该行为与预期的不同,这可能导致过多的递归。

于 2012-12-31T17:43:14.793 回答
0

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

如果通过 id 选择一个 DOM 元素,则只能返回一个元素。

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

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

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

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

于 2012-12-31T17:31:15.900 回答