简体   繁体   English

是否可以在 NodeList 中定位兄弟节点? 如果是这样,如何

[英]Is there away to target siblings nodes in a NodeList ? If so, how

I'm trying to target siblings in a nodeList, the same way that jquery does with.siblings()?我正在尝试以 nodeList 中的兄弟姐妹为目标,就像 jquery 与.siblings() 一样? I have a bunch of form fields with the class name of "js-form-control"我有一堆表单字段,名称为“js-form-control”的 class

<div class="form-group col-md-6  ">
  <input type="text" name="ctrl_name" id="ctrl_name" 
         class="form-control js-form-control"
         placeholder="Entrez votre nom*">
</div>
<div class="form-group col-md-6">
  <input type="email" name="ctrl_email" id="ctrl_email" 
         class="form-control js-form-control"
         placeholder="Entrez votre e-mail*">
</div>
<div class="form-group col-md-12">
  <textarea name="ctrl_message" id="ctrl_message" 
            class="form-control js-form-control"
            placeholder="Entrez votre message*">
  </textarea>
</div>
<div class="col-md-12 text-center">
  <button disabled class="btn btn-primary textcenter" id="ctrl_button">Envoyer</button>
</div>

in my js file i have querySelectorAll that builds a NodeList.在我的 js 文件中,我有构建 NodeList 的 querySelectorAll。

const allFields = document.querySelectorAll('.js-form-control');

I iterate over allFields to add an event handler on each child:我遍历 allFields 为每个孩子添加一个事件处理程序:

for ( var entry of allFields.entries() ) {

  console.log(entry);

  entry.addEventListener('change', e => {

    if (e.target.value != "" && entry[1].value != "" && entry[2].value != "") {
      targetButton.disabled = false;
    } else {
       targetButton.disabled = true;
    }
  })
}

How do i target the siblings in order to check if their values are empty?我如何定位兄弟姐妹以检查它们的值是否为空? Thanks.谢谢。 For exemple, if i'm in entry 0, i want to check if all other entries's values are empty...例如,如果我在条目 0 中,我想检查所有其他条目的值是否为空...

First check that the element has child nodes首先检查元素是否有子节点

 // div is an object reference to a <div> element as an example

  if (div.hasChildNodes()) {
    let children = div.childNodes;

    for (let i = 0; i < children.length; i++) {
      // register event handler with each child as children[i] here

    }
  }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM