2010-03-11 2 views

ответ

8

Редактировать

Поскольку идентификатор является уникальным в документе нет необходимости связать его с родительским выбором элемента. Вы можете сделать просто

$("#option1").remove(); 
3

JQuery:

$("#option1").remove(); 

или

$("#select").remove("#option1"); 

И классический Javascript метод:

var option1 = document.getElementById("option1"); 
document.getElementById("select1").removeChild(option1); 
+0

'$ ("# ВЫБ.1")' ненужно. '$ (" # option1 "). remove()' будет достаточным, так как он соответствует 'id'. –

+1

@Marko: Я редактировал это, когда вы разместили свой комментарий :-) Я оставил оригинал, так как добавление идентификаторов в теги опций довольно необычно. –

14

Удалить по значению:

$("#select1 option[value=1]").remove(); 

Удалить Текст Имя:

$("#select1 option:contains(Text)").remove(); 
+0

Текст, 'содержит', кажется, плохая идея, нет? Любая причина, по которой не использовать параметр '$ (" # select1: [text = 'My Text'] ")'? –

0

Я видел много людей с этой проблемой. Я создал этот скрипт, который может быть полезен. Надеюсь, вам это нравится:

var robable = { 
 
    init: function() { 
 
    robable.get_selected_option_from_select(); 
 
    }, 
 
    get_selected_option_from_select: function() { 
 
    $(".robable").off().on("change", function() { 
 
     if ($(this).val() !== "") { 
 
     robable.add_to_list($(this)); 
 
     } 
 
    }); 
 
    }, 
 
    remove_option_from_select: function(select_id, value) { 
 
    $("#" + select_id + " option[value='" + value + "']").remove(); 
 
    }, 
 
    add_option_to_select: function(select_id, value, text) { 
 
    $('#' + select_id).append('<option value="' + value + '">' + text + '</option>'); 
 
    }, 
 
    add_to_list: function(select) { 
 

 
    option_text = $(".robable option[value='" + select.val() + "']").text(); 
 

 
    //Add to list 
 
    $('#list').append("<li data-value='" + select.val() + "' data-text='" + option_text + "'><a href='#' class='filter-remove' data-parent-id='" + select.attr("id") + "'>Delete</a> " + option_text + "</li>"); 
 
    robable.remove_from_list(); 
 

 
    //Remove from select 
 
    robable.remove_option_from_select(select.attr("id"), select.val()); 
 
    }, 
 
    remove_from_list: function() { 
 
    $(".filter-remove").off().on("click", function() { 
 
     var select_id = $(this).data('parent-id'); 
 
     var option_value = $(this).closest("li").data('value'); 
 
     var option_text = $(this).closest("li").data('text'); 
 

 
     //Add to select 
 
     robable.add_option_to_select(select_id, option_value, option_text); 
 

 
     //Remove from list 
 
     $(this).closest("li").remove(); 
 
    }); 
 
    } 
 
}; 
 

 
robable.init();
<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <title>Select Robables</title> 
 
</head> 
 

 
<body> 
 
    <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script> 
 

 
    <ul id="list"></ul> 
 

 
</body> 
 

 
</html>

Смежные вопросы