我有一个父元素,并且有一堆重复的子元素具有相同的类。 border
类div
是动态生成的
类似这样的东西:
<div class="wrapper">
<div class="border">
<input type="text" class="main">
<input type="number" class="sub">
</div>
<div class="border">
<input type="text" class="main">
<input type="number" class="sub">
</div>
</div>
我有一个按钮,它将带有div
类的border
附加到父wrapper
类。
我想要一种功能,用于检查以确保具有div
类的最后一个border
具有至少一个输入框。
我是否可以选择border
父级中wrapper
类的最后一个div,以便我可以检查其是否具有任何值?
答案 0 :(得分:0)
是的,您可以使用querySelectorAll
来获取所有带有border类的div,并使用结果的长度来获取最后一个。像这样的东西
let divs = document.querySelectorAll('.border');
let last = divs[divs.length - 1];
let inputs = last.getElementsByTagName('input');
let hasValue = false; // default this to false
for(let i = 0; i < inputs.length; i++){
// Loop through them all to check for a value. Break if you find one that does
if(inputs[i].value !== null){
hasValue = true;
}
}
if(hasValue){
// Do what you want to do if at least one has a value
}else{
// Do what you want to do if none have a value
}
答案 1 :(得分:0)
尝试一下,希望它能起作用
let all = [...document.querySelectorAll(".wrapper > .border")];
all.forEach((ele, i) => {
console.log(i)
if (i == all.length - 1) { // checking for the last one
[...ele.children].forEach(el => {
if (el.value != "") { // check here if value is not empty
console.log("value not empty")
}
})
}
})
<div class="wrapper">
<div class="border">
<input type="text" class="main">
<input type="number" class="sub">
</div>
<div class="border">
<input type="text" class="main">
<input type="number" class="sub">
</div>
</div>
答案 2 :(得分:0)
<script>
var borders = document.getElementsByClassName("wrapper")[0].getElementsByClassName("border");
var lastBorderIndex = borders.length - 1;
console.log(borders[lastBorderIndex].getElementsByTagName('input'));
</script>
这使您可以访问包装div中最后一个边框div内的输入字段。 现在,您只需要遍历这些输入字段的值以检查它们是否为空。