Как сопоставить элементы «input» и «select» в jQuery с 1 запросом - PullRequest
1 голос
/ 26 мая 2010

повторно,

У меня есть простой запрос, который работает:

$("#test > fieldset > input").each(function() { })

Однако я хочу выбрать элементы «input» и «select» без необходимости писать 2 «каждого» запроса. Это возможно?

спасибо.

Ответы [ 6 ]

3 голосов
/ 26 мая 2010
$("#test > fieldset").children("input, select")

Здесь мы сначала находим <fieldset>, а затем все элементы <input> и <select> непосредственно под ним.find будет работать аналогично, но будет проходить сквозь дерево, а не только направлять детей.

2 голосов
/ 26 мая 2010

Несколько подробное решение:

$("#test > fieldset > input, #test > fieldset > select").each(function() {
  // do stuff
});

или:

$("#test > fieldset > input").add("#test > fieldset > select").each(function() {
  // do stuff
});

Селектор :input будет соответствовать более чем <input> и <select> элементы (например, <textarea>).

2 голосов
/ 26 мая 2010

jQuery имеет некоторое Хорошее документация

$("input, select").each(function() { })
1 голос
/ 26 мая 2010

jQuery предоставляет некоторые приятные возможности расширения. Вот общий фильтр для выбора по нескольким именам тегов :

/*
 * element: the current element being matched
 * index: index of the current element
 * match: parse tokens from the filter string
 *
 * match[0] -> full filter string
 * match[1] -> filter name
 * match[2] -> ""
 * match[3] -> filter parameter
 */
jQuery.expr[':'].tags = function(element, index, match) {
    var inputs = match[3].split(',');
    var nodeName = element.nodeName.toLowerCase();
    return $.inArray(nodeName, inputs) !== -1;
};​​​​​

Он имеет снижение производительности в том, что функция обратного вызова будет вызываться для каждого элемента, соответствующего точке фильтра, поэтому я бы не рекомендовал это для очень больших документов.

$("#test > fieldset > :tags(input,select)").hide();
1 голос
/ 26 мая 2010

Ой! Для этого есть документация !

0 голосов
/ 26 мая 2010

Вы можете использовать

$(document).ready(function(){
$("input, select").each(function() { 
 //do ur stuff
});
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...