我有一个for循环。
在循环中有一个if语句,如果发现下拉列表为空,则会添加错误css样式。
我的问题是循环仅循环 3 次,然后在它应该循环 15 次时停止.....并且我不知道为什么。
循环单独工作正常,但是当我添加if语句时,就会变得很奇怪。
帮助。
这是我的循环
//add all the id's in an array. array size is 15
var drop_down=["Cars_chassis","Cars_model".....];
for (var i = 0; i < drop_down.length; i++) {
//check if dropdown is empty
if(document.getElementById(drop_down[i]).value == ""){
//change the color of border
$('#'+drop_down[i]).css('border-color' , '#dddcdc');
}
}
答案 0 :(得分:2)
我建议为这些元素中的每一个添加一个CSS类,而不是指定它们的id。当一个班级可以做到这一点时,为什么要管理所有这些ID?
<select id="Cars_chassis" class="bordered-select"></select>
<!-- Add class to other 15 -->
此时,您可以静态地为CSS中的这些下拉列表定义样式。
.bordered-select{
border-color: #DDDCDC;
}
或者使用类选择器在元素上设置样式。看来你使用的是jQuery,所以下面的例子就可以了。
$(".bordered-select").css('border-color', '#DDDCDC');
如果您只需要突出显示没有值的那些,则以下内容将删除那些没有来自匹配元素集的值的内容:
$(".bordered-select").filter(function(){
return $(this).val() == "";
}).css("border-color", "#DDDCDC");
答案 1 :(得分:0)
document.getElementById(drop_down[i]); //returns a HTML DOM Object
var contents = $('#' + drop_down[i]); //returns a jQuery Object
您可以尝试将if(javascript)替换为if(jquery语法)
答案 2 :(得分:0)
var drop_down=["Cars_chassis","Cars_model".....];
for (var i = 0; i < drop_down.length; i++) {
//check if dropdown is empty
if( $('#' + drop_down[i]).value == ""){
//change the color of border
$('#'+drop_down[i]).css('border-color' , '#dddcdc');
}
}
或者你可以尝试
var drop_down=["Cars_chassis","Cars_model".....];
var contents = $('#' + drop_down[i]);
for (var i = 0; i < drop_down.length; i++) {
//check if dropdown is empty
if( $(contents[0]).value == ""){
//change the color of border
$('#'+drop_down[i]).css('border-color' , '#dddcdc');
}
}