gpt4 book ai didi

JavaScript NextElementSibling 不工作

转载 作者:行者123 更新时间:2023-12-02 15:42:52 25 4
gpt4 key购买 nike

我在元素内部有几个 Javascript 输入,并且在它们下面有 s 。

我还有一个 javascript 函数,如果有字母输入,它会删除​​输入的值,以便它只接受数字。

t=function(elem){
elem.onkeyup=function(e) {
if(!/[\d\.]/.test(String.fromCharCode(e.which))) {
elem.value='';
x=elem.nextElementSibling;
x.innerHTML='invalid string';
}
};
};
<dt>
<input type='number' onkeyup='t(this)'/>
</dt>
<dd>
text
</dd>
<dt>
<input type='number' onkeyup='t(this)'/>
</dt>
<dd>
text
</dd>
<!--comment-->

As you can see, if you type a letter into either input, it clears that input.

如您所见,如果您在任一输入中输入字母,则会清除该输入。我想更改以下的innerHTML

<dd></dd> 

元素改为“无效字符”,您可以看到我在 javascript 第 5 行和第 6 行尝试执行此操作。为什么这不起作用?有任何想法吗?知道修复方法吗?

请仅提供常规/纯 JavaScript 答案。

最佳答案

您想要访问:elem.parentNode.nextElementSibling因为您正在寻找 <dt> 的 sibling (父元素),而不是 <input>它没有 sibling 。

t=function(elem){
elem.onkeyup=function(e) {
if(!/[\d\.]/.test(String.fromCharCode(e.which))) {
elem.value='';
x=elem.parentNode.nextElementSibling;
x.innerHTML='invalid string';
}
};
};
<dt>
<input type='number' onkeyup='t(this)'/>
</dt>
<dd>
text
</dd>
<dt>
<input type='number' onkeyup='t(this)'/>
</dt>
<dd>
text
</dd>

关于JavaScript NextElementSibling 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32444033/

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