Javascript 如何确定具有特定类名的可见元素是否为空?

Javascript 如何确定具有特定类名的可见元素是否为空?,javascript,jquery,forms,Javascript,Jquery,Forms,起初我是这样做的,但后来我意识到这是行不通的,因为不是所有的元素都是可见的。我不是说隐藏,我是说它甚至不会出现在DOM中。这整段代码(减去document.ready部分)针对6个具有6个不同名称的字段执行了6次,因此当其中一个字段被键入时,它将检查其他5个字段 $(document).ready(function() { $(document.body).on("input", "input[name='count1']", function() { if ($(thi

起初我是这样做的,但后来我意识到这是行不通的,因为不是所有的元素都是可见的。我不是说隐藏,我是说它甚至不会出现在DOM中。这整段代码(减去document.ready部分)针对6个具有6个不同名称的字段执行了6次,因此当其中一个字段被键入时,它将检查其他5个字段

$(document).ready(function() {
    $(document.body).on("input", "input[name='count1']", function() {
        if ($(this).val() == '') {
            //do nothing
        } else {
            var count1val = $("#count1").val();
            var count2val = $("#count2").val();
            var count3val = $("#count3").val();
            var count4val = $("#count4").val();
            var count5val = $("#count5").val();
            var count6val = $("#count6").val();
            if (count1val !== '' && count2val !== '' && count3val !== '' && count4val !== '' && count5val !== '' && count6val !== '') {
                //do something
            }
        }
    });
});
因此,我需要查看是否所有使用特定类名可见的输入都是空的。需要使用类名,因为将有多个集合需要以相同的方式处理,并且我不希望一个集合干扰其他集合。我尝试了以下方法,但没有成功

$(document).ready(function() {
    $(document.body).on("input", "input[name='count1']", function() {
        if ($(this).val() == '') {
            //do nothing
        } else {
            if ($(".countmulti:visible").val() !== '') {
                //do something
            }
        }
    });
});
有什么更好的方法可以确定具有特定类名的一组可见字段是否都为空

更好地解释可见光场;有时它只显示字段1,有时显示字段1和2,有时显示字段1、2和3,有时显示字段1、2、3和4,有时显示字段1、2、3、4和5,有时显示所有字段6

我用stackoverflow的另一个问答解决了这个问题。以下是我使用的:

var inputsWithNoValue = $(".countmulti:visible").filter(function() {
    return !this.value.length;
});
if (inputsWithNoValue.length) { // if there are inputs with no value
    alert('something empty');
} else {
    alert('nothing empty');
}

您是否尝试过
console.log($(“.countmulti:visible”)
?它可能是一个数组。 它可能返回许多元素,因此您必须使用每个来迭代数组

答案是对它进行迭代。 而不是:

  if ($(".countmulti:visible").val() !== '') {
        //do something
    }


问题是,给定的选择器返回许多对象,而不是以前的一个

你们有多少班?您是否100%确定只有一个这样的类?6个输入具有相同的类名。@leoarce您应该进行编辑并尝试它,但它不起作用。我的警报测试从未出现过。$。每个($(“.countmulti:visible”)、函数(索引、值){if(value.val()!=''){alert('ok');}});您可以使用console.log$(“.countmulti:visible”)?从未使用过console.log。我不知道如何实现它。我把它卡在那里,它什么也没做。好的,我必须用控制台调试工具来使用它。突然出现了一堆东西。对象的长列表然后出现此错误:TypeError:res[index]。如果(res[index].val()!==''{(它指向“res”),则val不是函数属性值和属性值之间的区别是什么?所有属性值都填充了输入框中键入的内容,并且所有属性值都保持为空。
var inputsWithNoValue = $(".countmulti:visible").filter(function() {
    return !this.value.length;
});
if (inputsWithNoValue.length) { // if there are inputs with no value
    alert('something empty');
} else {
    alert('nothing empty');
}
var inputsWithNoValue = $(".countmulti:visible").filter(function() {
    return !this.value.length;
});
if (inputsWithNoValue.length) { // if there are inputs with no value
    alert('something empty');
} else {
    alert('nothing empty');
}