javascript - 定位兄弟元素的子元素
问题描述
以下代码目标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>
我怎样才能定位
fieldsets
到单独的内部sections
?
<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
}
})
})
推荐阅读
- angular - ngrx - 在用户登录之前防止效果引导
- jsf - 如何在不同的浏览器选项卡中重用具有不同数据的 Primefaces 数据表?
- python - 使用 cvxpy 进行多变量优化
- javascript - Rails:一些 javascript 仅在 Windows 计算机上无法用于生产
- javascript - 使用 react bootstrap carousal 组件
- android - Android - 室内寻路建议
- r - 如何在火花数据框中用 NAN 替换值(问题是并行化)
- laravel - 如何清除价值观?
- javascript - 在单击 reactjs 上添加行
- ruby - `each_cons` 如何处理个位数?