ฉันมีเพจที่มี 5 ตัวเลือกซึ่งทั้งหมดมีชื่อคลาส 'ct' ฉันต้องการลบตัวเลือกที่มีค่า 'X' จากการเลือกแต่ละรายการขณะใช้งานเหตุการณ์ onclick รหัสของฉันคือ:
$(".ct").each(function() {
$(this).find('X').remove();
});
ฉันจะไปไหนผิด
ฉันมีเพจที่มี 5 ตัวเลือกซึ่งทั้งหมดมีชื่อคลาส 'ct' ฉันต้องการลบตัวเลือกที่มีค่า 'X' จากการเลือกแต่ละรายการขณะใช้งานเหตุการณ์ onclick รหัสของฉันคือ:
$(".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
สำหรับ<select>
องค์ประกอบ
find()
ใช้ตัวเลือกไม่ใช่ค่า ซึ่งหมายความว่าคุณต้องใช้มันในลักษณะเดียวกับที่คุณจะใช้ฟังก์ชั่น jQuery ปกติ ( $('selector')
)
ดังนั้นคุณต้องทำสิ่งนี้:
$(this).find('[value="X"]').remove();
ดูเอกสารค้นหา jQuery
ใช้งานได้กับแท็กตัวเลือกหรือช่องข้อความ:
$("#idname option[value='option1']").remove();
หากดร็อปดาวน์ของคุณอยู่ในตารางและคุณไม่มีรหัสคุณสามารถใช้ jquery ต่อไปนี้:
var select_object = purchasing_table.rows[row_index].cells[cell_index].childNodes[1];
$(select_object).find('option[value='+site_name+']').remove();
สำหรับ jquery <1.8 คุณสามารถใช้:
$('#selectedId option').slice(index1,index2).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();