#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")')