Jquery: альтернатива созданию селекторных строк? - PullRequest
1 голос
/ 10 февраля 2012

Есть ли альтернатива построению селекторных строк в jquery?

В частности, я пытаюсь извлечь информацию из меток нескольких элементов формы, поэтому мне нужно создать запросы типа $('[for=#id]').Кажется неэффективным (и, вероятно, неэффективным) создание строк запроса при каждом проходе каждой итерации по элементам формы.

Единственный похожий вопрос, который я могу найти, это шаблон jQuery (anti-)построение селекторов со строковой манипуляцией , которая не имеет никаких полезных ответов.

Ответы [ 2 ]

1 голос
/ 10 февраля 2012

По крайней мере, ограничить поиск формой, в которой вы ищете. Поиск по атрибутам неэффективен, потому что вам нужно перебирать каждый элемент в корневом наборе элементов. поэтому вместо поиска каждого элемента в DOM ограничьте область поиска:

var forID = $('#my-form').find('[for=#id]');

Вы можете сделать это немного быстрее, выполнив поиск меток внутри формы, а затем отфильтровав все, что вам нужно:

var $allLabels = $('#my-form').find('label');

//then you can find a specific element by searching in the $allLabels object.
$allLabels.filter('[for="#id"]');

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

0 голосов
/ 10 февраля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...