gpt4 book ai didi

javascript - 无法在 javascript 中用前一个元素兄弟递增最后一个元素

转载 作者:行者123 更新时间:2023-11-30 11:19:31 24 4
gpt4 key购买 nike

我正在努力完成一项小任务。当用户单击其中一个框时,它应该将该框递增 2,并将其旁边的框递增 1。如果一个框的左侧有另一个框,它应该将该框递增 1 以及一个在右边。然而,虽然代码适用于页面上的所有框,但当单击最后一个框时,它之前的框不会增加。下面是代码。

function boxInc(element){

var number = parseInt(element.innerHTML);
number+=2;
element.innerHTML = number;


rightNumber = parseInt(element.nextElementSibling.innerHTML);
rightNumber++;
element.nextElementSibling.innerHTML = rightNumber;

leftNumber = parseInt(element.previousElementSibling.innerHTML);
leftNumber++;
element.previousElementSibling.innerHTML = leftNumber;

}
#container div {
width: 5vw;
height: 5vw;
background: rgb(10,200,40);
float: left;
margin: 1vw;
padding: 1vw;
font-family: sans-serif;
font-size: 20pt;
}
<div id="container">
<div id="1" onclick="boxInc(this)">0</div>
<div id="2" onClick="boxInc(this)">0</div>
<div id="3" onClick="boxInc(this)" >0</div>
<div id="4" onClick="boxInc(this)">0</div>
<div id="5" onClick="boxInc(this)">0</div>
<div id="6" onClick="boxInc(this)">0</div>
</div>

我想要一个普通的 JavaScript 解决方案,而不是一个 jQuery 解决方案。

最佳答案

正如 Randy Casburn 在评论中所说,您的做法是正确的,您只需要在尝试获取或设置内容之前检查 sibling 是否存在。

此外,我认为你可以使用 textContent 而不是 innerHTML,因为你只是设置文本,而不是使用 HTML,所以不需要调用 HTML"编译器”。下面的代码应该可以帮到你,看看:

function boxInc(element){
var number = parseInt(element.textContent);
number += 2;
element.textContent = number;

if (element.nextElementSibling != null){
rightNumber = parseInt(element.nextElementSibling.textContent);
rightNumber++;
element.nextElementSibling.textContent = rightNumber;
}

if (element.previousElementSibling != null){
leftNumber = parseInt(element.previousElementSibling.textContent);
leftNumber++;
element.previousElementSibling.textContent = leftNumber;
}

}
#container div {
width: 5vw;
height: 5vw;
background: rgb(10,200,40);
float: left;
margin: 1vw;
padding: 1vw;
font-family: sans-serif;
font-size: 20pt;
}
<div id="container">
<div id="1" onclick="boxInc(this)">0</div>
<div id="2" onClick="boxInc(this)">0</div>
<div id="3" onClick="boxInc(this)">0</div>
<div id="4" onClick="boxInc(this)">0</div>
<div id="5" onClick="boxInc(this)">0</div>
<div id="6" onClick="boxInc(this)">0</div>
</div>

关于javascript - 无法在 javascript 中用前一个元素兄弟递增最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50338661/

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