2013-11-20 2 views
0

У меня что-то вроде этого:Удалить несколько выберите вариант с JS, когда нет доступа к HTML

<select id="color-filter" onchange="js_color_filter_changed()" name="color-filter"> 
    <option selected="selected" value="none">---</option> 
    <option style="background-color:#A8314F" value="#A8314F"> </option> 
    <option style="background-color:#CEF0FF" value="#CEF0FF"> </option> 
    <option style="background-color:#D1FFB3" value="#D1FFB3"> </option> 
    <option style="background-color:#FFA4A4" value="#FFA4A4"> </option> 
    </select> 

, и я хотел бы удалить/скрыть, например, какой-то вариант с перекрестной совместимости браузера и без Jquery. У меня нет доступа к html, но я могу добавить код в внешний JS-файл.

Я нашел решение, которое работает хорошо:

http://jsfiddle.net/vpV3q/4/

, но когда я изменить значение этого не работают:

http://jsfiddle.net/vpV3q/5/

Я полагаю, потому что значение содержит хеш-тег. Я новичок в JS ... любая альтернатива?

ответ

1

Попробуйте это изменения в вашем примере: DEMO

var ary = ['#DADAD2','#CEF0FF']; 
$('[name=year] option').filter(function() { 
    return ($.inArray(this.value,ary) > -1); 
}).remove(); 
  1. Добавить в кавычки значений в массиве
  2. Функция ParseInt() разбирает строку и возвращает целое число. Удалены

Если в ваш "реальный" HTML комбо является: <select name="color-filter" ... >

Изменение:

$('[name=year] option') ... 

по

$('[name=color-filter] option') ... 
+0

Почему не просто: '$ (ary.join (',')). remove(); ' –

+0

Я тестировал, но это не работает на моей стороне. Возможно, это потому, что Onchange? Если да, то я не знаю, что делает это событие и где связан код. Возможно, в другом JS-файле, где у меня нет доступа. Я должен исследовать .. – dotcom27

+0

@DavidThomas, извините, но я не могу понять, как использовать этот код внутри примера op. – Mate

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