目前我正在使用jquery(例如
)检查多个元素的状态if ($('#One').val() == 0 && $('#Two').val() == 0 && $('#Three').val() == 0){
...
}
在我的真实世界中,以这种方式编写更多元素(最多15个)并且我想知道是否可以将此语句重构为更易于概述的内容?
答案 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;
答案 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;