簡體   English   中英

針對同胞元素的孩子

[英]Targeting children of sibling elements

下面的代碼的目標fieldsets是兄弟姐妹,使得那些fieldsets可以當被啟用input buttons中的前一個被選擇:

document.querySelectorAll("fieldset").forEach(fieldset => {
  fieldset.addEventListener("change", function() {
    let nextFieldset = this.nextElementSibling

    while (nextFieldset && !nextFieldset.disabled) {
      nextFieldset = nextFieldset.nextElementSibling
    }

    if (nextFieldset) {
      nextFieldset.disabled = false
    }
  })
})

<form>
  <fieldset> … </fieldset>
  <fieldset> … </fieldset>
  <fieldset> … </fieldset>
</form>

如何定位單獨sections fieldsets

<form>
  <section><fieldset> … </fieldset></section>
  <section><fieldset> … </fieldset></section>
  <section><fieldset> … </fieldset></section>
</form>

這是完整的工作解決方案:

document.querySelectorAll("section").forEach(section => {
  section.addEventListener("change", function() {
    let nextFieldset = this.nextElementSibling.querySelector("fieldset")

    while (nextFieldset && !nextFieldset.disabled) {
      nextFieldset = nextFieldset.nextElementSibling
    }

    if (nextFieldset) {
      nextFieldset.disabled = false
    }
  })
})

我認為這將解決您的問題

    document.querySelectorAll("fieldset").forEach(fieldset => {
  fieldset.addEventListener("click", function() {
    let nextFieldParent = this.parentElement.nextElementSibling;
    let nextFieldset = nextFieldParent.firstElementChild;    
    while (nextFieldset && !nextFieldset.disabled) {
      nextFieldParent = this.parentElement.nextElementSibling;
    nextFieldset = nextFieldParent.firstElementChild;
    }

    if (nextFieldset) {
      nextFieldset.disabled = false
    }
  })
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM