У меня есть фрагмент 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);