gpt4 book ai didi

javascript - 获取 Dom 树中下一个元素的第一个子元素并关注它

转载 作者:行者123 更新时间:2023-12-03 07:12:25 25 4
gpt4 key购买 nike

编辑 - 问题已更新。

我有一个函数,当输入达到其最大长度时,它会选择下一个输入以准备更多文本。

每个输入框都包含在一个输入容器内。但是,当尝试以下代码时,我收到此错误

Uncaught TypeError: Cannot read property 'childNodes' of undefined

似乎没有找到当前元素的父节点,因此无法选择下一个节点。

我在这里缺少什么?

片段

function prepareInputs() {
var inputs = document.getElementsByTagName('input');

for (var i = 0; i < inputs.length; i++) {
inputs[i].onkeyup = function() {
if (this.value.length == 4) {
this.nextElementSibling.childNodes[0].focus();
}
}
}
}
<div class="row">
<div class="form-group input-group-lg col-xs-3">
<input type="text" class="form-control" placeholder="PART 1" maxlength="4">
</div>
<div class="form-group input-group-lg col-xs-3">
<input type="text" class="form-control" placeholder="PART 2" maxlength="4">
</div>
<div class="form-group input-group-lg col-xs-3">
<input type="text" class="form-control" placeholder="PART 3" maxlength="4">
</div>
<div class="form-group input-group-lg col-xs-3">
<input type="text" class="form-control" placeholder="PART 4" maxlength="4">
</div>
</div>

最佳答案

您收到此错误是因为 input 元素确实没有下一个同级元素。你的代码应该这样写。

  //convert nodeList to array
var inputs = Array.prototype.slice.call(document.getElementsByTagName('input'));

inputs.forEach(function(input,i){
input.onkeyup = function() {

if (this.value.length != input.maxLength) {
return;
}
var nextInput = inputs[i + 1];
if(nextInput){
nextInput.focus();
}
}
});

关于javascript - 获取 Dom 树中下一个元素的第一个子元素并关注它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36576699/

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