我正在使用Business Catalyst网站(Adobe)。我需要在每行项后插入一个占位符div,而另一个脚本稍后会将信息附加到该行。这在大多数浏览器上运行正常,但在IE 11上没有任何作用。
脚本查找插入行中的最后一项,即。行包含4个项目,但如果最后一行只有1或2,则在最后一行之后插入。
我正在使用Jquery 1.1,但刚刚切换到1.7,它似乎没有任何区别。
我的标记:
<div class="roller col-md-3" id="roller001">
<div class="roller-type">
<div class="roller-image">
{tag_small image_nolink}
</div>
<a class="roller-btn" onclick="appendRoller{tag_itemid}('{tag_itemid}')" href="javascript:void(0);">{tag_name_nolink}</a>
</div>
</div>
<div class="roller col-md-3" id="roller002">
<div class="roller-type">
<div class="roller-image">
{tag_small image_nolink}
</div>
<a class="roller-btn" onclick="appendRoller{tag_itemid}('{tag_itemid}')" href="javascript:void(0);">{tag_name_nolink}</a>
</div>
</div>
脚本:
<script type="text/javascript">
$(document).ready(function(){
var rollerItems = document.getElementsByClassName('roller');
for (n=0; n<rollerItems.length; n++) {
if(n%4 == 0) {
var rowEnd = rollerItems[n];
if(document.contains(rollerItems[n+1])) { rowEnd = rollerItems[n+1]; }
if(document.contains(rollerItems[n+2])) { rowEnd = rollerItems[n+2]; }
if(document.contains(rollerItems[n+3])) { rowEnd = rollerItems[n+3]; }
$('<div class="popup-row"></div>').insertAfter(rowEnd);
}
}
});
</script>
答案 0 :(得分:4)
我已经意识到问题不在于&#39; insertAfter&#39;完全命令,但使用&#39; document.contains&#39;。显然,IE并不认为&#39;文件&#39;作为一个节点,我需要使用&#39; document.body.contains&#39;确定行末的项目。
例如
if(document.body.contains(rollerItems [n + 1])){rowEnd = rollerItems [N + 1]; }
一行一行地穿过所有东西但是闪过它!不确定这是否是最佳解决方案,但现在至少可以使用。