0

デモ

「+」と「-」を含むオプションなしで、すべてのオプションから「選択」を削除する必要があります

なぜこのようなことをしないのですか

$('#hidden :not(:contains(+)), #hidden :not(:contains(-))').removeAttr('selected');

また

$('#hidden :not(:contains(+)):not(:contains(-))').removeAttr('selected');

助けてくれてありがとう!


これは、サイトで製品をフィルター処理するために必要です...

製品にはサイズがあり、サイズには色があります。

たとえば、product#1 のサイズは「+9.0」で、このサイズには赤と青の色しかありません...

助けてくれてありがとう!全員+1

4

3 に答える 3

3

私はお勧めします:

$('#hidden, #Size').change(function(){
    $(this).find('option').filter(function(){
        return $(this).text().match(/(\+|-)/);
    }).prop('selected', false);
});

JS フィドルのデモ

ただし、optionユーザーが選択できないようにしようとしている がラベルであり、次の要素がオプションのグループを表している場合は、タグをoption使用して、HTML のネイティブの動作に頼るのが最善であることに注意してください。optgroup

<select multiple size="10" id="hidden">
    <option value="">none</option>
    <optgroup label="+9.0">
        <option value="">red</option>
        <option value="">blue</option>
        <option value="">green</option>
    </optgroup>
    <!-- other groups removed for brevity -->
    <optgroup label="-8.8">
        <option value="">red</option>
        <option value="">blue</option>
        <option value="">green</option>
    </optgroup>
</select>

JS Fiddle デモ(要素のみを修正しました#hidden select)。

参考文献:

于 2013-10-09T17:45:13.993 に答える
1

なぜそれをしたいのですか?

これらの選択を実際に進めたくない場合は、タイトルを表す必要があります。次に、HTML 属性disabledを使用できます。
お気に入り:

<option disabled = true value="">+9.0</option>

これがあなたが達成したかったことであることを願っています。 jsフィドル

于 2013-10-09T17:45:29.380 に答える