1

forループがあります。

ループには、ドロップダウンが空の場合にエラー css スタイルを追加する if ステートメントがあります。

私の問題は、ループが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');
     }
}
4

3 に答える 3

3

ID を指定する代わりに、これらの要素のそれぞれに CSS クラスを追加することをお勧めします。1 つのクラスで処理できるのに、なぜこれらすべての 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");

作業例: http://jsfiddle.net/v4hQz/

于 2013-03-10T17:09:19.817 に答える
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');
     }
}
于 2013-03-10T17:13:22.733 に答える
0
document.getElementById(drop_down[i]); //returns a HTML DOM Object

var contents = $('#' + drop_down[i]);  //returns a jQuery Object

if (javascript) を if (jquery syntax) に置き換えてみてください。

于 2013-03-10T17:10:20.920 に答える