web-dev-qa-db-ja.com

jQueryがselectからオプションを削除

私は5つの選択を持つページがあり、すべてがクラス名 'ct'を持っています。 onclickイベントを実行している間、各selectから 'X'の値を持つオプションを削除する必要があります。私のコードは:

$(".ct").each(function() {
    $(this).find('X').remove();
   });

どこが悪いの?

194
user135498

これを試して:

$(".ct option[value='X']").each(function() {
    $(this).remove();
});

もっと簡潔に言うと、これも同様に機能します。

$(".ct option[value='X']").remove();
398
Andrew Hare
$('.ct option').each(function() {
    if ( $(this).val() == 'X' ) {
        $(this).remove();
    }
});

あるいは単に

$('.ct option[value="X"]').remove();

重要な点は、findはセレクター文字列を受け取ることです。xを与えることで、xという名前の要素を探します。

47
meder omuraliev

find()は値ではなくセレクタを取ります。これは、通常のjQuery関数($('selector'))を使用するのと同じ方法でそれを使用する必要があることを意味します。

したがって、あなたはこのようなことをする必要があります:

$(this).find('[value="X"]').remove();

JQuery find のドキュメントを参照してください。

25
TM.

オプションタグかテキストフィールドのどちらかで機能します。

$("#idname option[value='option1']").remove();
1
Ashu

単に削除をしたとき、オプションはビューのddlに残っていましたが、htmlに入っていました(もしuを見れば)

$("#ddlSelectList option[value='2']").remove(); //removes the option with value = 2
$('#ddlSelectList').val('').trigger('chosen:updated'); //refreshes the drop down list
1
Vishav Premlall

ドロップダウンがテーブル内にあり、それに対するIDがない場合は、次のjqueryを使用できます。

var select_object = purchasing_table.rows[row_index].cells[cell_index].childNodes[1];
$(select_object).find('option[value='+site_name+']').remove();
1

Jquery <1.8の場合、次を使用できます。

$('#selectedId option').slice(index1,index2).remove()

特定の範囲の選択オプションを削除します。

1
jajhonrod

リストを繰り返し、検索を使用して複数の項目を削除します。応答に整数の配列が含まれています。 $( '#OneSelectList')は選択リストです。

$.ajax({
    url: "Controller/Action",
    type: "GET",
    success: function (response) {
        // Take out excluded years.
        $.each(response, function (j, responseYear) {
            $('#OneSelectList').find('[value="' + responseYear + '"]').remove();
        });
    },
    error: function (response) {
        console.log("Error");
    }
});
0
CYoung