Правильный выбор и фильтрация элементов в переменной HTML-структуре с помощью jQuery - PullRequest
1 голос
/ 08 февраля 2011

У меня есть фрагмент HTML с несколькими элементами (в основном, одного типа (здесь, например, я использую SPAN), но также несколько других), которые могут быть заключены в DIV, но не всегда. По сути, иногда у меня есть один корневой элемент (DIV), иногда у меня есть несколько элементов на одном уровне. Как правильно выбрать все эти указанные элементы (SPAN) с помощью jQuery?

Обновление разъяснений : этот способ выбора должен быть успешным для обоих случаев, перечисленных ниже

Чтобы привести пример, следующий фрагмент кода показывает две возможные структуры для моего HTML-фрагмента.

var test1 = "<div><span></span><span></span><div></div></div>";
var test2 = "<span></span><span></span><div></div>";
alert($(test1).filter("span").length);
alert($(test2).filter("span").length);

Естественно, первый фильтр возвращает 0, тогда как второй возвращает 2. Я знаю, что один из способов «решить» это заключался бы в инкапсуляции моего фрагмента в DIV, на котором я затем запускаю свой фильтр, однако мне интересно знать, есть ли лучшее решение.

Обновление 2: Что я мог сделать (как упомянуто в параграфе выше), это что-то вроде следующего кода, который работает для обоих случаев:

alert($("<div></div>").append(test2).find("span").length);

1 Ответ

0 голосов
/ 08 февраля 2011

Если вы хотите узнать, сколько диапазонов содержится в элементе, вы бы использовали

.siblings()

скажем, у вас есть это:

<div><span></span><span></span><div></div></div>

если вы хотите увидеть, сколько промежутков содержится в div, вы бы

$('div').siblings("span").length;

и если вы просто хотите узнать, сколько элементов содержится в этом элементе div, вы просто удалите параметр из родных братьев, например так:

$('div').siblings().length;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...