gpt4 book ai didi

Javascript document.contains 不适用于 IE11

转载 作者:搜寻专家 更新时间:2023-11-01 05:29:07 26 4
gpt4 key购买 nike

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com