jQuery ลบตัวเลือกจากตัวเลือก


222

ฉันมีเพจที่มี 5 ตัวเลือกซึ่งทั้งหมดมีชื่อคลาส 'ct' ฉันต้องการลบตัวเลือกที่มีค่า 'X' จากการเลือกแต่ละรายการขณะใช้งานเหตุการณ์ onclick รหัสของฉันคือ:

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

ฉันจะไปไหนผิด


วิธีนี้ใช้ได้ดี: $('select').children('option[value="X"]').remove();
劉鎮瑲

คำตอบ:


452

ลองสิ่งนี้:

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

หรือเพื่อให้กระชับยิ่งขึ้นสิ่งนี้จะใช้ได้เช่นกัน:

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

1
สิ่งนี้ใช้ได้สำหรับฉัน ขอบคุณ ไวยากรณ์ที่จะ จำกัด สิ่งนี้เป็น. ct ด้วยค่าที่เลือก = '' คืออะไร
user135498

2
นี่เป็นวิธีที่ง่ายที่สุดถ้าคุณไม่จำเป็นต้องรู้คุณค่า ตัวอย่างเช่นการลบตัวเลือกแรก $ ("# affiliate") [0] [0] .remove ();
ladieu

55
$('.ct option').each(function() {
    if ( $(this).val() == 'X' ) {
        $(this).remove();
    }
});

หรือเพียงแค่

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

จุดที่สำคัญคือfindใช้เวลาสตริงตัวเลือกโดยการให้อาหารมันคุณกำลังมองหาองค์ประกอบชื่อxx


5
+1 ผมชอบคำตอบนี้ฉันคิดว่าดีกว่าเพราะผมสามารถทดสอบ 'X' เหมือนหรือบางส่วนของvalueสำหรับ<select>องค์ประกอบ
ชารีฟ

1
ผมใช้คำตอบนี้ที่ฉันมีการลบตัวเลือกอื่น ๆ ทั้งหมดกว่า Val = 0 i ใช้ = 0 และทำงานเช่นเสน่ห์! :)
Lakshman Pilaka

31

find()ใช้ตัวเลือกไม่ใช่ค่า ซึ่งหมายความว่าคุณต้องใช้มันในลักษณะเดียวกับที่คุณจะใช้ฟังก์ชั่น jQuery ปกติ ( $('selector'))

ดังนั้นคุณต้องทำสิ่งนี้:

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

ดูเอกสารค้นหา jQuery


1
ดีกว่ามากในกรณีที่คุณส่งตัวแปรให้ผนวก
Neurothustra

3

ใช้งานได้กับแท็กตัวเลือกหรือช่องข้อความ:

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

1

หากดร็อปดาวน์ของคุณอยู่ในตารางและคุณไม่มีรหัสคุณสามารถใช้ 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

เมื่อฉันลบตัวเลือกที่ยังคงอยู่ใน ddl ในมุมมอง แต่ก็หายไปใน html (ถ้าคุณตรวจสอบหน้า)

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

1

วนซ้ำรายการและลบหลายรายการโดยใช้การค้นหา การตอบสนองมีอาร์เรย์ของจำนวนเต็ม $ ('# 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");
    }
});
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.