5つのselectがあり、すべてにクラス名「ct」があるページがあります。onclickイベントの実行中に、各選択から値「X」のオプションを削除する必要があります。私のコードは:
$(".ct").each(function() {
$(this).find('X').remove();
});
どこがいけないの?
5つのselectがあり、すべてにクラス名「ct」があるページがあります。onclickイベントの実行中に、各選択から値「X」のオプションを削除する必要があります。私のコードは:
$(".ct").each(function() {
$(this).find('X').remove();
});
どこがいけないの?
回答:
これを試して:
$(".ct option[value='X']").each(function() {
$(this).remove();
});
より簡潔にするために、これも同様に機能します:
$(".ct option[value='X']").remove();
$('.ct option').each(function() {
if ( $(this).val() == 'X' ) {
$(this).remove();
}
});
あるいは単に
$('.ct option[value="X"]').remove();
主なポイントはfind
、セレクター文字列を受け取り、それx
をフィードすることで、という名前の要素を探しているということx
です。
value
for <select>
要素のように、またはfor 要素の一部としてテストできるため、より良いと思います
find()
値ではなくセレクターを取ります。つまり、通常のjQuery関数($('selector')
)を使用するのと同じ方法で使用する必要があります。
したがって、次のようなことを行う必要があります。
$(this).find('[value="X"]').remove();
jQuery find docsを参照してください。
ドロップダウンがテーブルにあり、IDがない場合は、次のjqueryを使用できます。
var select_object = purchasing_table.rows[row_index].cells[cell_index].childNodes[1];
$(select_object).find('option[value='+site_name+']').remove();
私が単に削除したとき、オプションはビューのddlに残っていましたが、htmlに表示されていません(ページを調べた場合)
$("#ddlSelectList option[value='2']").remove(); //removes the option with value = 2
$('#ddlSelectList').val('').trigger('chosen:updated'); //refreshes the drop down list
リストを繰り返し、検索を使用して複数のアイテムを削除します。応答には整数の配列が含まれます。$( '#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");
}
});
$('select').children('option[value="X"]').remove();