У вас есть некоторые недоразумения о том, как здесь работают JavaScript и jQuery.
"#state[CA]"
- это просто строка, так как "#ins_type[auto]"
"#state[CA]" && "#ins_type[auto]"
преобразует эти строки в bools, затемспрашивает, правда ли они оба.Только пустая строка преобразуется в ложь, поэтому логика:
"#state[CA]" && "#ins_type[auto]" === true && true === true
Затем вы оборачиваете это вызовом функции $
, который просто преобразует свои аргументы в объект jQuery.Так что
$("#state[CA]" && "#ins_type[auto]") === $(true) = $()
т.е. вы только что получили пустой объект jQuery, поскольку вы не передали селектор или элемент DOM.
Если вы тестируете любой не null
, неundefined
объект с if
, он преобразует его в bool, так что вы получите if(true)
:
if ($("#state[CA]" && "#ins_type[auto]"))
<=> if ($())
<=> if (true)
Та же логика применима ко второму оператору if
, поэтому оба оператора if
делаютнет ничего.