可以't从这个jquery对象中得到正确的结果

can't get correct results from this jquery object

本文关键字:结果 对象 jquery 可以      更新时间:2023-09-26

我有下面的javascript,并尝试了许多不同的方法来使用类dvservicestitle从div中获取文本,以及使用dvservicescontent类从div中获得任何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));
原因是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>​]

您可以使用:

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

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

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

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