以下代码可在其他浏览器上很好地工作,但在IE7和8上它会抱怨:
var divs = $(".paginate-boxes li");
for(var i = 0; i < divs.length; i+=9) {
divs.slice(i, i+9).wrapAll("<li class='slide-portfolio'><ul></ul></li>");
}
它正在处理的代码是一长串
li
,如下所示: <li>
<!--Fade-->
<div class="mosaic-block fade">
<a href="http://www.example.com/destination/" class="mosaic-overlay">
<object class="details">
<h4>Destination Page</h4>
<p>
</p>
</object>
</a>
<div class="mosaic-backdrop"><img width="296" height="175" src="http://www.example.com/wp-content/uploads/this_thumb.jpg" class="attachment-portfolio-image wp-post-image" alt="this_thumb" title="This image" /></div>
</div>
</li>
使用IE9中的Dev工具(在8模式下),我发现它在到达代码的
.slice
位时抱怨,引用了jQuery(v.1.7.2)的这一位。// IE6-8 fail to clone children inside object elements that use
// the proprietary classid attribute value (rather than the type
// attribute) to identify the type of content to display
if ( nodeName === "object" ) {
dest.outerHTML = src.outerHTML;
}
不确定到底是什么意思
我需要更改什么才能阻止它引发错误,为什么?
最佳答案
回想起来很明显-用<object>
替换<div>
,它可以正常工作。
关于javascript - IE7和8与jQuery的.slice引发错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12861119/