1

次の div があります。

メーカー[1]、メーカー[2]、メーカー[3]、...など...

多くの div を閉じる javascritp for ループを作成しようとしましたが、少し検索した後、それは不可能であることに気付きました。

閉じる=非表示(表示:なし)

だから私はそれを行うためのjqueryの簡単なコードを書くのに助けが必要です:

    function hideAllManufacturers(manufacturersID)
{
    var manufacturer = [1,2,3,];

    $.each(manufacturer, function(index, val) {
        $('.manufacturer['+val+']').hide();
    });


}

それは機能しますが、次のコードは表示されません。だから、おそらく私が書いたものに問題があります..

最後にコンマがあるのは悪いことですか?

君の力が必要!

4

2 に答える 2

4

次のようにワイルドカードを使用できます

$('[class^="manufacturer"]').hide();

これにより、manufacturer で始まるクラスを持つすべての要素が非表示になるため、.manufacturer[1]、.manufacturer[2] などが非表示になります。

これにより、後日新しい製造元を追加する場合に jQuery で製造元配列を更新する必要がないため、今後の作業が容易になります。ワイルドカードを使用して新しいものをすぐにキャプチャし、時間と不要なコードを節約します。

于 2012-12-29T10:28:18.393 に答える
2

これ[]は、JQuery で使用される CSS セレクターのメタ文字であるため、2 つのバックスラッシュでエスケープする必要があるため、次の\\ようになります。

$(".manufacturer\\[" + val + "\\]").hide();

参照:

http://api.jquery.com/category/selectors/

http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier

それが機能しないもう1つのことは、配列に余分なコンマがあるためです

var manufacturer = [1,2,3,]; //remove the last comma

そして、それはこのようでなければなりません

var manufacturer = [1,2,3];
于 2012-12-29T10:30:48.347 に答える