无法从此jquery对象获得正确的结果

时间:2012-03-06 14:34:46

标签: javascript jquery jquery-selectors

我有以下一点javascript并尝试了许多不同的方法来从div获取dvservicestitle类的文本,以及div中带有dvservicescontent类的任何li标签。既不工作,也不确定原因。任何人都知道这段代码有什么问题吗?

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 :(得分:0)

你可以使用:

var title = $(".dvservicestitle").text();
var elements = $(".dvservicescontent li").text();

答案 1 :(得分:0)

原因是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>​]

答案 2 :(得分:0)

.find搜索您没有的后代。要搜索的div存在于顶层,因此它是jQuery对象中的元素之一。

使用.filter过滤正确的元素:

$(html).filter(".dvservicestile").text();

答案 3 :(得分:-2)

var title = $(html).find(".dvservicestitle").html();
var elements = $(html).find('.dvservicescontent ul').children();