某些页面上使用wrapAll()的奇怪行为

时间:2012-07-20 15:09:37

标签: jquery jquery-selectors

我正在尝试将所有内容都包含在名为bodySemex的div中的页面<body>标记内。对于大多数页面,这很好用:

$('body').children().wrapAll('<div id="bodySemex" />')

但是,在某些页面上,这会导致body元素完全消失。 (例如,avc.com和http://www.theatlantic.com/technology/archive/12/07/how-the-gorgeous-sometimes-fictional-sound-of-the-olympics-gets-made/259742/都会因为这行代码而消失。

每次发生这种情况我都会收到错误消息;该消息似乎表明jQuery的each()函数正试图对未定义的东西进行操作。

Uncaught ReferenceError: _gat is not defined
(anonymous function)
e.extend.globalEval chrome-extension://clcjngnadninklpbdkjccpoenjdomnid/js/jquery.js:2
e.extend.globalEval chrome-extension://clcjngnadninklpbdkjccpoenjdomnid/js/jquery.js:2
bp chrome-extension://clcjngnadninklpbdkjccpoenjdomnid/js/jquery.js:2
e.extend.each chrome-extension://clcjngnadninklpbdkjccpoenjdomnid/js/jquery.js:2
f.fn.extend.domManip chrome-extension://clcjngnadninklpbdkjccpoenjdomnid/js/jquery.js:4
f.fn.extend.prepend chrome-extension://clcjngnadninklpbdkjccpoenjdomnid/js/jquery.js:3
f.each.f.fn.(anonymous function) chrome-extension://clcjngnadninklpbdkjccpoenjdomnid/js/jquery.js:4
(anonymous function) chrome-extension://clcjngnadninklpbdkjccpoenjdomnid/js/distillery.js:365
e.extend.each chrome-extension://clcjngnadninklpbdkjccpoenjdomnid/js/jquery.js:2
e.fn.e.each chrome-extension://clcjngnadninklpbdkjccpoenjdomnid/js/jquery.js:2
bodySwap (Note, this is the name of the line of code the this question is about)

我搜索了类似的问题并尝试了一些替代方法(例如,这里讨论的替代方案:Jquery wrapAllInner() ? -- Or wrapAll() applied interally?

感谢您提供的任何帮助!

1 个答案:

答案 0 :(得分:0)

我找到了一个适合我的解决方案。 .each()函数似乎在<script>元素上运行,导致它查找未定义的属性。

现在,我在调用script之前删除了所有wrapAll()元素,因此:

$('script').detach();
$('body').children().wrapAll('<div id="bodySemex" />');