【问题标题】:jQuery .get > append div to pagejQuery .get > 将 div 附加到页面
【发布时间】:2011-11-06 01:11:31
【问题描述】:

我正在尝试实现自动加载来自 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 内容(或者至少,我做错了)。有人可以告诉我如何正确选择它吗?

【问题讨论】:

  • 拥有完整的数据响应会有所帮助,因为马特的回答似乎是正确的。附带说明一下,数字 id 在 html 中是无效的,并且可能导致讨厌的错误。
  • 不,我没有使用数字 ID。当我发送获取请求时,我会得到常规的 html 页面。 #gallery 嵌套在正文中的某个位置。有什么办法可以帮助大家解决这个问题吗?我真的不知道为什么它不起作用
  • 我试过 document.write($('#gallery', data)); > 它说它是一个对象
  • 你能显示你的响应json编码字符串吗
  • 试过了。它说“未捕获的类型错误:将循环结构转换为 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":"#画廊"}

标签: jquery jquery-selectors get append tumblr


【解决方案1】:

好的,所以我没有设法使用您的任何答案,而是发现,如果我在要使用的内容之前和之后添加 HTML cmets,我可以这样做:

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);
    });
}

【讨论】:

    【解决方案2】:

    尝试使用

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

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

    【讨论】:

    • 不,不是。但是,无论您请求 page/2/ 还是 page/2/#gallery,它都没有任何区别,因为它仍然是您返回的同一个 html 对象
    • 不是“page/2/#gallery”,而是“page/2/#gallery”(url 和#gallery 之间有空格)。这样,jQuery 会自动只返回#gallery 的内容
    【解决方案3】:

    您正在尝试从名为data 的标签中选择#gallery,这当然不存在。试试这个:

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

    【讨论】:

    • 这对我也不起作用。当我执行 function(data){$('#test').append(data)} 时,它会很好地附加整个 html,但是当我只选择 div#gallery 的内容时,它什么也不做
    猜你喜欢
    • 1970-01-01
    • 2012-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-02
    相关资源
    最近更新 更多