0
我正在使用Business Catalyst站點(Adobe)。我需要在每行另一個腳本後面附加信息的行項後插入一個佔位符div。這在大多數瀏覽器上工作正常,但在IE 11上沒有任何操作。Javascript document.contains無法在IE11上工作
該腳本查找insertAfter中的最後一項,即。行包含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>
由於'rollerItems'是從文檔中檢索的,您爲什麼需要檢查'document.contains'?這不是重言式嗎?你可以簡單地檢查'n + 1> = rollerItems.length' – slebetman
好點。我的想法是我需要一行上的第一個項目來觸發insertAfter,但之後需要檢查該行中是否存在更多的項目,然後插入div,但是我認爲你的方式更好。 –
我正在考慮離開這個解決方案,因爲我無法找到任何有關IE瀏覽器在堆棧溢出document.contains問題... –