jQuery- удалить и добавить обратно определенные параметры в select

#javascript #jquery

#javascript #jquery

Вопрос:

У меня есть этот выбор, который постоянно меняется (добавление, удаление и т.д.)…

Это выглядит примерно так:

 <select class="validation" id="6401e0f3802aa3c1d76feca811b3c43c" name="attribute[75]">
<option value="109">Leather 1000</option>
<option value="111">Leather 2000 ( $300.00)</option>
<option value="112">Leather 3000 ( $400.00)</option>
<option value="113">Leather 5000 ( $500.00)</option>
</select>
  

Я использую jQuery, чтобы удалить все параметры цвета, которые выглядят следующим образом:

 <select class="validation" id="" name="attribute[76]">
<option value="210">1000-Black</option>
<option value="211">2000-Black</option>
<option value="212">3000-Black</option>
<option value="213">5000-Black</option>
</select>
  

Число перед цветом соответствует типу кожи. Моя проблема в том, что существует несколько сотен вариантов цвета для каждого типа кожи.

В настоящее время я использую этот плагин:

 (function($){

$.fn.extend({detachOptions: function(o) {
    var s = this;
    return s.each(function(){
        var d = s.data('selectOptions') || [];
        s.find(o).each(function() {
            d.push($(this).detach());
        });
        s.data('selectOptions', d);
    });
}, attachOptions: function(o) {
    var s = this;
    return s.each(function(){
        var d = s.data('selectOptions') || [];
        for (var i in d) {
            if (d[i].is(o)) {
                s.append(d[i]);
                console.log(d[i]);
                // TODO: remove option from data array
            }
        }
    });
}});   

})(jQuery);
  

Чтобы удалить все другие параметры, включая цвета. В настоящее время у меня есть выбор ткани и цветов, которые работают нормально, но мне нужно удалить и добавить только определенные цвета, и мне нужно, чтобы это работало автоматически.

Что мне нужно сделать, так это когда выбран Leather 1000, мне нужны ТОЛЬКО варианты цвета, в которых есть 1000.

Кто-нибудь может мне помочь с этим?

Ответ №1:

вот пример:http://jsfiddle.net/8x7Cz /

имейте в виду, что // tricky part вы можете захотеть изменить это

Ответ №2:

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

 $('select[name="attribute[76]"] option:contains("1000")')