Вам нужно сделать это:
if( $.inArray('Aqua', arrVals) > -1 ) {
или это:
if( $.inArray('Aqua', arrVals) !== -1 ) {
Метод $.inArray()
возвращает значение 0
индекс элемента. Если нет элемента, он возвращает -1
, который оператор if()
будет считать true
.
Из документов:
Поскольку JavaScript обрабатывает 0 как (т.е. 0 == false, но 0! == false), если мы проверяем наличие значения внутри массива, нам нужно проверить, не равен ли он (или больше) -1.
blockquote>EDIT: вместо того, чтобы вставлять оба значения в массив как объект, просто используйте один или другой, так что у вас есть массив строк, из которого вы можете создать множественный селектор.
Один из способов:
// Create an Array from the "value" or "text" of the select options var arrVals = $.map( $dd[0].options, function( opt, i ){ return opt.value || opt.text; }); // Build a multiple selector by doing a join() on the Array. $( "#" + arrVals.join(',#') ).show();
Если массив выглядит так:
['Army','Aqua','Bread'];
Результирующий селектор будет выглядеть так:
$( "#Army,#Aqua,#Bread" ).show();