为了账号安全,请及时绑定邮箱和手机立即绑定

在整个代码中的特定元素之后按类查找下一个元素(jQuery)

在整个代码中的特定元素之后按类查找下一个元素(jQuery)

湖上湖 2021-06-08 14:28:18
我需要做一个jQuery脚本镜我在一个输入<input>的class="a"下一个正向<input>的class="b",每一个键在键盘按下。但我有一些限制:不,不幸的是我无法更改 HTML。这是一个遗留代码。我唯一能做的就是添加一个 jQuery 脚本。不,它不能是纯 JavaScript 代码。它必须是一个 jQuery 代码。是的,我需要使用,.on()因为div包含输入的 是动态创建的。我曾尝试使用.next(), .find(), .each(), .closest()... 但我是初学者,所以我不知道如何正确使用它们。可能是使用这些功能的东西。<!-- any code --><div>    <input type="text" class="a" /></div><!-- any code --><div>    <input type="text" class="b" /></div><!-- any code --><div>    <input type="text" class="a" /></div><!-- any code --><div>    <input type="text" class="b" /></div><!-- any code --><div>    <input type="text" class="a" /></div><!-- any code --><div>    <input type="text" class="b" /></div><!-- any code -->$(document).on('keyup', '.a', function (ev) {    //1 - get value in input and store in a variable    //2 - search for the next forward input of class="b"    //3 - set the variable to the value of input});重要提示:请注意,代码并非完全如此。在一个input和另一个之间,有一些代码,它们不是同一父级中的事件div。我唯一不能保证的是input,在代码中,下一个是在 ant 之后,它将在div.
查看完整描述

2 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

看到 jQuery 如何纯 JavaScript,人们可能会争辩说这也是“jQuery 代码”:D

  1. 输入事件上,通过获取父元素的兄弟元素(阿姨元素)来获取表亲输入

  2. 如果阿姨不是<div>一直寻找,直到找到下一个<div>

  3. 阿姨下搜索所需的输入/类组合(即input.b

  4. 将该表亲元素的值设置input.a为正在输入的值

document.addEventListener('input', event => {

  if (event.target.classList.contains('a')) {

    let aunt=event.target.parentElement.nextElementSibling

    while(aunt && aunt.nodeName!='DIV'){

      aunt=aunt.nextElementSibling;

    }

    const cousin = aunt.querySelector('input.b');

    cousin.value = event.target.value;

  }

});

<!-- any code -->

<div>

  <input type="text" class="a" />

</div>

<pre>

  code

</pre>

<div>

  <input type="text" class="b" />

</div>

<pre>

  code

</pre>

<div>

  <input type="text" class="a" />

</div>

<!-- any code -->

<div>

  <input type="text" class="b" />

</div>

<!-- any code -->

<div>

  <input type="text" class="a" />

</div>

<pre>

  code

</pre>

<div>

  <input type="text" class="b" />

</div>


查看完整回答
反对 回复 2021-06-11
  • 2 回答
  • 0 关注
  • 160 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信