#javascript #jquery
#javascript #jquery
Вопрос:
Я храню значения в многомерном скрытом входном массиве, который выглядит следующим образом:
<input type="hidden" name="tokens[0][Search_Type]" value="a" />
<input type="hidden" name="tokens[0][Search_Term]" value="123" />
<input type="hidden" name="tokens[1][Search_Type]" value="b" />
<input type="hidden" name="tokens[1][Search_Term]" value="456" />
Как я могу быстро проверить, существует ли token
с Search_Term
= X и Search_Type
= Y? Если есть способ сделать это в одной строке jquery, а не в цикле, это было бы потрясающе.
Ответ №1:
Jquery:
token_found = $('input[name$=Search_Type]][value=Y]
input[name$=Search_Term]][value=X]'
).length > 0;
Ответ №2:
Вы могли бы сделать это и с помощью селекторов:
// found
console.log($('input[name$="[Search_Type]"][value="a"]').next('input[name$="[Search_Term]"][value="123"]').length);
// not found
console.log($('input[name$="[Search_Type]"][value="b"]').next('input[name$="[Search_Term]"][value="123"]').length);
// found
console.log($('input[name$="[Search_Type]"][value="b"]').next('input[name$="[Search_Term]"][value="456"]').length);
Пример: http://jsfiddle.net/niklasvh/56jLf /
Но является ли это более эффективным, чем при циклировании, я не знаю.
Ответ №3:
Если вы проверяете отправленный массив как объект javascript, вы можете использовать jsonpath для выполнения запросов, подобных xpath, к набору данных.