Javascript document.contains 不适用于 IE11

标签 javascript jquery

我正在开发一个 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>

最佳答案

我意识到问题根本不在于“insertAfter”命令,而在于“document.contains”。显然 IE 不将“文档”视为节点,我需要使用“document.body.contains”来确定行末尾的项目。

例如。

if(document.body.contains(rollerItems[n+1])) { rowEnd = rollerItems[n+1]; }

逐行检查所有内容,但掩盖了这一点!不确定这是否是最佳解决方案,但至少现在可以使用。

关于Javascript document.contains 不适用于 IE11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38582105/

相关文章:

javascript - 包装函数包围

循环内的Javascript函数不适用于其他div

javascript - 克隆后无法从选择框中选择选项

javascript - 选择时填写下拉列表

javascript - 在 React 中设置状态

javascript - 这个函数是做什么的?我对读写部分最困惑

javascript - NodeJS 阻塞读取多个文件并返回快速响应

javascript - 我如何捕获类型为 "document/html"的请求中的错误

jquery - 使用委托(delegate)交换类

javascript - jquery 手机 : can't set button's left and width?