jQuery .get > 将 div 添加到页面

3
我正在尝试实现一个脚本,可以自动加载Tumblr标签中的所有内容。代码如下: ```html

我正在尝试实现一个脚本,可以自动加载Tumblr标签中的所有内容。代码如下:

```
if (is_int($("#page-count").text())) {totalPages = parseInt($("#page-count").text())};
for ( pageCount=2; pageCount<=totalPages;pageCount++) {
    $.get("/page/" + pageCount, function(data){$('#test').append($('data > #gallery')});

}

问题是我无法使用$('data > #gallery')选择#gallery内容(或者说,我完全做错了)。有人可以给我一个提示如何正确选择它吗?

拥有完整的数据响应将有所帮助,因为Matt的答案似乎是正确的。另外,数字ID在HTML中无效,可能会导致麻烦的错误。 - roselan
不,我没有使用数字ID。当我发送GET请求时,我得到一个常规的HTML页面。#gallery嵌套在正文的某个地方。有什么办法可以帮助你们解决这个问题吗?我真的不知道为什么它不起作用。 - Blackie123
我尝试使用document.write($('#gallery', data)); > 它说它是一个对象。 - Blackie123
你能展示一下你的响应JSON编码字符串吗? - Kanishka Panamaldeniya
尝试过了,它显示“未捕获的类型错误:将循环结构转换为JSON”。我尝试了Firefox,它会像这样写对象:{"length":0,"prevObject":{"0":{},"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"length":52},"selector":"#gallery"}。 - Blackie123
3个回答

2

尝试使用

$.get('/page/' + pageCount + ' #gallery', function(data){
    $('#test').append(data);
});

请注意,在url和“#gallery”之间有一个空格,例如/page/1。这将指示jQuery在响应内搜索#gallery,而不将其作为url的一部分传递。

不,不是这样的。但是无论您请求page/2/还是page/2/#gallery,都不会有任何区别,因为您得到的仍然是相同的HTML对象。 - Blackie123
不是“page/2/#gallery”,而是“page/2/ #gallery”(在url和#gallery之间有一个空格)。这样,jQuery会自动返回#gallery的内容。 - Ortiga

2

好的,所以我没有使用您提供的任何答案,取而代之的是我发现,如果在我想要使用的内容前后添加HTML注释,我可以像这样做:

for ( pageCount=2; pageCount<=totalPages;pageCount++) {
    $.get("page/" + pageCount, function(data){
        new_posts = data.split("<!-- posts-start --\>")[1].split("<!-- posts-end --\>")[0];
        $("#gallery").append(new_posts);
    });
}

0

你正在尝试从名为data的标签中选择#gallery,但这个标签显然不存在。请尝试以下代码:

$.get("/page/" + pageCount, function(data){$('#test').append($('#gallery', data)});

这对我也不起作用。当我执行function(data){$('#test').append(data)}时,它会很好地附加整个HTML,但是按照您的方式仅选择div#gallery的内容时,它什么也不做。 - Blackie123

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接