gpt4 book ai didi

javascript - .insertBefore 每四次单击不执行任何操作

转载 作者:行者123 更新时间:2023-11-28 00:05:38 26 4
gpt4 key购买 nike

问题

我有几行简单的代码,但无法理解为什么 .insertBefore 每隔四次点击就不起作用。

<小时/>

HTML

<ul id="container">
<li>1
<li>2
<li>3
</ul>
<button id="button">change</button>
<小时/>

Javascript

var button = document.getElementById('button');
button.addEventListener('click', changeIt, false);

function changeIt(){
// alert('hi'); (checked that function is running 4th time)
var container = document.getElementById('container');
var first = container.firstChild;
var last = container.lastChild;
container.insertBefore(last, first);
// alert(last); >> shows last item is a text node every 4th time
}
<小时/>

fiddle

http://jsfiddle.net/FuFtF/27/

最佳答案

我明白了!...第四次,insertBefore 不是替换 HTML 元素,而是替换文本对象。

我将确保测试该变量是否是具有如下 nodeType 的 HTML 元素:

// if it's an html element, the nodeType must be 1
// if it's not
if(last.nodeType !== 1){
// remove it,
last.remove();
// again grab last item
last = container.lastChild;
}

关于javascript - .insertBefore 每四次单击不执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31365268/

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