0

テキスト「すべて」と値なしのトップオプションを持つすべての選択がありますが、これらの選択の他のすべてのオプションで機能するコードを記述する必要があります。

私は次のようなコードを持っていますが、2行目の条件を廃止したいと思います。jQuery の ':not' セレクターを使用してみましたが、欠落/null/未定義の値に対して構成する方法がわかりませんでした。value を空の文字列 "" に明示的に設定してから :not を使用するのが最善でしょうか?

_.each($(select).find('option'), function(option) {
    if (optionVal = $(option).val()) {

jQuery の each の代わりに _.each を使用していることをお許しください。jQuery の一致したセットを繰り返すだけでなく、アンダースコアを多くの目的で使用しているため、一貫性を保ちたいと考えています。

4

4 に答える 4

5

私の頭の上から、次のいずれかを使用できます。

$(select).find('option[value!=""]');

また

$(select).find('option:not([value=""])');

そうでないオプションを返す<option value="">All</option>

最初optionのオプションが常に値のないオプションである場合は、次も使用できます。

$(select).find('option:not(:eq(0))')

optionではないすべての要素を選択しますfirst-child

于 2013-09-13T18:28:49.413 に答える
1

:not()すべての Select 要素から最初の Option を除外する場合は、セレクターと.find()メソッドを使用できます。

$('select').find('option:not(:first)');  

.filter()値を持つオプションをフィルタリングする場合は、次のメソッドを使用できます。

$('select option').filter(function() {
   return $.trim(this.value).length;
});

jQuery コレクションを反復処理する場合は、jQuery の.each()メソッドを使用することをお勧めします。そうしないと、jQuery が提供するチェーン機能が失われます。

于 2013-09-13T18:27:46.903 に答える
0
$(select).find('option[value]'); // selects all <option>s with value

私が質問を正しく理解していれば。

于 2013-09-13T18:28:13.533 に答える
0

あなたはこれを試すことができます

HTML:

<select>
    <option>All</option>
    <option value>0</option>
    <option value=1>One</option>
    <option value=2>Two</option>
</select>

JS:これは最後の 2 つのオプション (One と Two) のみを返します。

$('select option').filter(function(){
    return this.hasAttribute('value') && this.value.length;
});

値のオプションをフィルタリングしますmissing/null/undefined。ここに例があります。

于 2013-09-13T18:46:46.067 に答える