2012-07-20 87 views
0

我试图将所有内容都包含在名为bodySemex的div的<body>标签中。对于大多数页面,这工作得很好:在某些页面上使用wrapAll()的奇怪行为

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

然而,在一些网页上,这会导致人体元素完全消失。 (例如,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) 

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

感谢您的帮助,您可以提供

回答

0

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

所以现在,我打电话wrapAll()前删除所有script元素,正是如此:

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