Javascript jQuery.wrap导致范围错误

Javascript jQuery.wrap导致范围错误,javascript,jquery,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

好吧,这太疯狂了

使用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,它只返回一个项

RangeError:超出了最大调用堆栈大小:代码中是否存在无止境循环?你能再发一些代码吗

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

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

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


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

jQuery已经有一个调用的函数,您正在用自己的函数覆盖它。该行为与预期不同,可能会导致太多的递归。

我只在chromealso中测试过,在控制台中我获取$item,它只返回一个项;这使得您似乎有多个id为item的元素。这是一个否定,可能是你的问题的原因。Html ID应该是唯一的。如果您有多个项目,请改用类。就是这样,页面上只有一个项目。选择器是按id还是按类也不重要。提供的代码适合我。你能设置一个演示来展示这个问题吗?那么你能在使用中发布你的插件吗?例如,在你的例子中,你只有一个叫做“item”的元素。您的选择中只能有一个元素。我理解页面上只能有id的限制。同样,这不是重点。我使用id只是为了实用,我的插件和mostall一样?jQuery插件不应该关心如何选择应用它们的元素。Doh!你完全正确。更改了我插件的名称,现在它可以工作了。在这里我想我发现了一些疯狂的jQuery错误。
var countOfElements = $('.selector').length;