не может получить правильные результаты от этого объекта jquery - PullRequest
0 голосов
/ 06 марта 2012

У меня есть следующий фрагмент javascript, и я пробовал несколько разных способов получить текст из div с помощью класса dvservicestitle и любые теги li в div с помощью класса dvservicescontent.Ни работа, и я не уверен, почему.У кого-нибудь есть идея, что не так с этим кодом?

if (html == "") html = "<div class='dvservicestitle'>Our Services</div><div class='dvservicescontent'><ul></ul></div>";

var title = $(html).find(".dvservicestitle");
var elements = $("dvservicescontent li", $(html));

Ответы [ 4 ]

0 голосов
/ 06 марта 2012

.find ищет потомков, которых у вас нет.Элемент div для поиска существует на верхнем уровне, поэтому он является одним из элементов объекта jQuery.

Используйте .filter, чтобы отфильтровать правильный элемент:

$(html).filter(".dvservicestile").text();
0 голосов
/ 06 марта 2012

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

var title = $(".dvservicestitle").text();
var elements = $(".dvservicescontent li").text();
0 голосов
/ 06 марта 2012

Причина в том, что метод find() находит дочерние узлы на текущем узле.Ваша HTML-переменная - это тот div, который вы ищете, поэтому метод find() не находит его.Вам нужно обернуть его в другой контейнер.

html = "<div class='dvservicestitle'>Our Services</div><div class='dvservicescontent'><ul></ul></div>";
$(html).find(".dvservicestitle")
>> []

$(html).hasClass("dvservicestitle")
>> true

html = "<div><div class='dvservicestitle'>Our Services</div><div class='dvservicescontent'><ul></ul></div></div>"

$(html).find(".dvservicestitle")
>> [<div class=​"dvservicestitle">​Our Services​</div>​]
0 голосов
/ 06 марта 2012
var title = $(html).find(".dvservicestitle").html();
var elements = $(html).find('.dvservicescontent ul').children();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...