Ответ 1
Вам нужно сделать это:
if( $.inArray('Aqua', arrVals) > -1 ) {
или это:
if( $.inArray('Aqua', arrVals) !== -1 ) {
Метод $.inArray()
возвращает индекс на основе 0
элемента. Если нет элемента, он возвращает -1
, который оператор if()
будет считать true
.
Из документов:
Поскольку JavaScript обрабатывает 0 как слабо равное false (то есть 0 == false, но 0! == false), если мы проверяем наличие значения внутри массива, нам нужно проверить, не равно ли оно ( или больше) -1.
РЕДАКТИРОВАТЬ: Вместо того, чтобы вставлять оба значения в массив как объект, просто используйте один или другой, так что у вас есть массив строк, из которого вы можете построить множественный селектор.
Один из способов:
// 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();