用jquery检查多个元素状态

时间:2015-11-12 23:57:35

标签: javascript jquery

目前我正在使用jquery(例如

)检查多个元素的状态
if ($('#One').val() == 0 && $('#Two').val() == 0 && $('#Three').val() == 0){
   ...
}

在我的真实世界中,以这种方式编写更多元素(最多15个)并且我想知道是否可以将此语句重构为更易于概述的内容?

6 个答案:

答案 0 :(得分:3)

您可以使用id这样的元素为one/two/...提供一个通用类,并使用此类(我的示例general_class中的类名称)遍历它们:

var result = 0;

$('.general_class').each()
{
    if( $(this).val() != 0)
        result++;
}

if ( result == 0 ){
    //that mean all your inputs have 0 in value
}

希望这有帮助。

答案 1 :(得分:2)

尝试使用section.page-container, section.page { display: block; width: 100%; } section.page-container { position: absolute; padding:0; top: 0; left: 0; background-color: blue; } section.page { position: relative; background-color: red; } section.page > article { position: relative; display: block; width: 700px; height: 600px; overflow: visible; background-color: rgba(0, 0, 0, 0.2); margin-top: 50px; } 。如果向元素添加唯一Array.prototype.every(),则可以使用单个选择器,例如class

$(".unique").get()

答案 2 :(得分:1)

这样的事情:

 $('input').each(function(){
        if($(this).val()==0){
            alert("");


        }
    });

答案 3 :(得分:1)

也许不是最干净的方式,但最容易理解并且有效:

var toCheck = ['.Val1', '.Val2', '.Val3', '.Val4'];

var isOk = true;

$.each(toCheck, function(k, v){
    if($(v).val() == 0){
        isOk = false;
    }
});


if($isOk){
    // do whatever
}

答案 4 :(得分:1)

使用toArray()然后every使用arrow expression: -

if($("#One, #Two, #Three").toArray().every(el => el.value == 0)){
   //All zero
}

示例



function check() {
  if ($("#One, #Two, #Three").toArray().every(el => el.value == 0)) {
    $('<div>All Zero</div>').insertAfter('#check');
  }
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id='One' type="text" value="0" />
<input id='Two' type="text" value="0" />
<input id='Three' type="text" value="0" />
<input type="button" id="check" value="check" onclick="check()">
&#13;
&#13;
&#13;

答案 5 :(得分:0)

我认为你想要的是确保所有输入字段的值为零(至少是我能从你的代码中理解的)。

您可以为每个元素创建一个类或自定义属性,如:

<input name="value1" data-must-be-zero>
<input name="value2" data-must-be-zero>

你可以选择:

var myInputs = $("input[data-must-be-zero]");
var allRight = myInputs.filter( function() { return $(this).val() != 0; }).length === 0;