Javascript .get()未筛选特定的css选择器

Javascript .get()未筛选特定的css选择器,javascript,jquery,Javascript,Jquery,在我的.get()-request的回调中,我想过滤两个不同元素的内容。这是我的代码: 函数加载帖子(url){ $.get(url、函数(数据){ data=$.parseHTML(数据); nextPageUrl=$(数据) .filter('#detailnav>.next>a') .attr('href'); 数据=$(数据) .filter(“#内容”) .儿童(); 数据附件(容器); […] }","html";; } 以及html: […] 问题是没有nextPageURL

在我的
.get()
-request的回调中,我想过滤两个不同元素的内容。这是我的代码:

函数加载帖子(url){
$.get(url、函数(数据){
data=$.parseHTML(数据);
nextPageUrl=$(数据)
.filter('#detailnav>.next>a')
.attr('href');
数据=$(数据)
.filter(“#内容”)
.儿童();
数据附件(容器);
[…]
}","html";;
}
以及html:


[…]
问题是没有
nextPageURL
返回,但是
.get()
肯定得到了它

.get()
-请求按预期工作,数据似乎被直接解析。问题似乎是
nextPageURL
的CSS选择器,因为这样做很好:

nextPageUrl = $(data)
    .filter('#detailnav')
    .find('.prev > a')
    .attr('href');

不幸的是,选择器在最后是一个变量,所以我无法控制最后会出现哪个选择器

不能使用过滤器导航到元素的子元素。因此,不是:

 .filter('#detailnav > .next > a')
做:


不能使用过滤器导航到元素的子元素。因此,不是:

 .filter('#detailnav > .next > a')
做:


使用find代替filter。您只需要将内容包装在一个div中,这样find就可以工作了

var html = $("<div/>");
html.html(data);
nextPageUrl = html
            .find('#detailnav > .next > a')
            .attr('href');
var html=$(“”);
html.html(数据);
nextPageUrl=html
.find(“#detailnav>.next>a”)
.attr('href');

过滤器只是限制集合,它不查找子元素

使用find而不是filter。您只需要将内容包装在一个div中,这样find就可以工作了

var html = $("<div/>");
html.html(data);
nextPageUrl = html
            .find('#detailnav > .next > a')
            .attr('href');
var html=$(“”);
html.html(数据);
nextPageUrl=html
.find(“#detailnav>.next>a”)
.attr('href');

过滤器只是限制集合,它不查找子元素

你的问题是什么?我不明白。注意,您正在添加内容,但ID必须是唯一的哦,对不起,完全忘了写下来……问题是没有
nextPageURL
返回,但是
.get()
肯定得到了。我把它写在描述里了。你有什么问题?我不明白。注意,您正在添加内容,但ID必须是唯一的哦,对不起,完全忘了写下来……问题是没有
nextPageURL
返回,但是
.get()
肯定得到了。我把它放在描述中。是的,这对我来说不起作用,因为变量选择器。但是感谢您的澄清,在
.filter()
@Afterlame中无法放置特定的CSS选择器
变量选择器
,这是什么意思?我将在最终版本中通过变量获取选择器。这意味着它可以是
#first>second>third>.next
以及
#next
。我无法控制它。是的,这对我来说不起作用,因为变量选择器。但是感谢您的澄清,在
.filter()
@Afterlame中无法放置特定的CSS选择器
变量选择器
,这是什么意思?我将在最终版本中通过变量获取选择器。这意味着它可以是
#first>second>third>.next
以及
#next
。我无法控制。