【问题标题】:$('#' + somestring).anything not working?$('#' + somestring).anything 不工作?
【发布时间】:2016-11-06 17:59:34
【问题描述】:

下午,我正在编码的当前网站从服务器动态获取文章并将它们插入到滚动表中,但我在跟踪它们时遇到了问题

function addArticle() {

var div = document.createElement("div");

 var id="div"+count.toString();
 div.id=id;

 $('#'+id).load("http://localhost:8080/dog/demo.html"+count.toString(),function()   {});


 document.getElementById("newsfeed_table").rows[0].appendChild(div);
 count++;
}

现在,如果我将 all div 的 id 设置为“div1”,那么文章就会加载,如果我在这里做什么,$('#'+id) 它不起作用,它也不会抛出错误,以上就是问题所在,因为我已经在我的页面上测试了字符串连接作为 Jquery id 的其他内容,但它失败了。任何帮助表示赞赏。

【问题讨论】:

  • 您不能将 div 直接附加到表格行。如果您查看创建的标记,您会注意到 div 附加在表格之后。您必须先创建一个单元格,然后将 div 附加到该单元格。
  • 您的选择器不起作用,因为您的目标是一个尚未附加到 DOM 的元素,因此无法找到它。该元素必须是 DOM 的一部分,选择器查询才能工作。
  • @vlaz count 显然是一个递增的变量,用于创建新的唯一 ID
  • 你有demo.html2demo.html33等吗?似乎是一种奇怪的文件命名方式?
  • 大声笑不,服务器使用来自 dog/demo.htmlN 的 xml 获取文章 N,有人知道我在第一个答案的 cmets 中的问题的答案吗?

标签: javascript jquery html web


【解决方案1】:

jQuery 选择器 $ 正在遍历 DOM 并找到您的选择器。您首先搜索不存在的选择器“#”+ id,然后将新创建的元素插入 DOM。尝试交换此操作:

function addArticle() {

    var div = document.createElement("div");

    var id="div"+count.toString();
    div.id=id;

    document.getElementById("newsfeed_table").rows[0].appendChild(div);

    $('#'+id).load("http://localhost:8080/dog/demo.html"+count.toString(),function()   {});


    count++;
}

或尝试使用普通的 ajax 函数获取 https://api.jquery.com/jquery.get/,并在回调中将数据插入新创建的元素,然后将其插入 DOM。

function addArticle() {

    var div = document.createElement("div");

    var id="div"+count.toString();
    div.id=id;

    $.get( "http://localhost:8080/dog/demo.html"+count.toString(), function( data ) {
        $( div ).html( data );
    });

    document.getElementById("newsfeed_table").rows[0].appendChild(div);

    count++;
}

【讨论】:

  • 谢谢你,这有效,但不幸的是我现在有这个问题,我从 box.html 加载的文章,

    #post#

    ,服务器将#tag# 替换为数据,但imgur.com/a/FFfGJ 如此处所示,当我单击“阅读更多”时,代码为 alert("#post_#dog#"); ,它会提醒添加的第一篇文章的ID,知道为什么吗?
  • 是否可以在某处发布整个解决方案?真的很难说,出了什么问题。
  • imgur.com/a/e0WZn 这是带有所有相关代码的图像,如果您单击图像然后在 chrome 上放大到 150% 您可以阅读代码,黄色突出显示是最重要的,非常感谢:D
猜你喜欢
  • 2017-05-15
  • 2012-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多