Вопрос по jquery, javascript – как ограничить область поиска jquery

20

Это выглядит какJQuery выполняет поиск в текущемdocument при использовании селектора.

Как искать элемент только внутриdiv элемент?

Ваш Ответ

6   ответов
28

с которыми вы, возможно, более знакомы.

Сначала выберите div, а затем сходите с него:

$('#my-div').find('some-selector').

или создайте свой селектор, чтобы он соответствовал дочерним элементам рассматриваемого элемента:

$('#my-div some-selector')
(первый быстрее) Amadan
@ Amadan. Почему ты так уверен gdoron
jspref time !!!! Derek 朕會功夫
@ gdoron: была статья об этом. JQuery оптимизирован для поиска селекторов только для идентификаторов с минимальной суетой, прямо наgetDocumentById. Все остальное передается Sizzle. Если браузер не имеетquerySelector - а в некоторых случаях IIRC показала, что Sizzle даже превзошлаquerySelector. На самом деле, я сделал быстрый Google, и есть много статей об этом; вот один из них. Amadan
10

Scoped jQuery-селектор (используя желаемую область, т.е. ваш div-селектор, в качестве второго параметра)

например. использовать

var $matches = $('.adiv', '#mydiv');

Это более короткий эквивалент:

var $matches = $('#mydiv').find('.adiv');
8
var elems = jQuery(".foo", jQuery("#divYourWantToLimitTo") );  //BAD
//or
var elems = jQuery("#divYourWantToLimitTo .foo");  //Better
//or
var elems = jQuery("#divYourWantToLimitTo").find(".foo");  //BEST
Первый вариант неверен, jQuery не исключает строковый селектор в качестве контекста. проверьте документы. gdoron
@ gdoron - Не могли бы вы объяснить, что, как мне кажется, он будет внутренне превращен в точно такой же, как третий вариант? Я понимаю, что в документах написано «Элемент DOM, Документ или jQuery для использования в качестве контекста» и т. adeneo
@ adeneo Это было изменено ... epascarello
@ epascarello - я вижу это, просто удивляюсь, почему, поскольку я использую это, как это было все время, и всегда думал, что это было хорош adeneo
Первый и третий методы идентичны. jquery docs сказать: Внутренне контекст селектора реализован с помощью метода .find (), поэтому $ ("span", this) эквивалентно $ (this) .find ("span"). Quinn Comendant
2

$("#your_div").find(".your_things");        //Find everything inside
  //-or-
$("#your_div").filter(".your_things");      //Find only the top level
  //-or-
$("#your_div .your_things");                //Easiest
0
var elements = $('div ' + yourSearch);
0
$('div-selector').find('the selector-you-are-looking-for');

Похожие вопросы