【问题标题】:jQuery not appending an elementjQuery不附加元素
【发布时间】:2013-01-16 21:57:41
【问题描述】:

我正在努力向 flexigrid 添加额外的搜索框... 我深入研究了 flexigrid 脚本并找到了添加搜索元素的位置。然后我添加了自己的输入字段,如下所示:

$(g.sDiv).append("<input type='text' value='' size='30' name='fromDate' id='datepicker' class='qsbox datepicker' />");

g.sDiv 是在脚本前面创建的变量,如下所示:

g.sDiv = document.createElement('div');

我假设这会创建一个 div,并且我可以将项目附加到它。

虽然我无法解决一些问题。 如果我附加以下元素:

$(g.sDiv).append("<div id = 'customSearch'></div>");

(确实渲染正确),然后尝试使用以下命令附加到该 div:

$('#customSearch').append("<input type='text' value='' size='30' name='fromDate' id='datepicker' class='qsbox datepicker' />");

输入框没有添加到页面中。

为什么这个方法不起作用?

另外,在创建输入框后,我想添加 datepicker ui。如何对动态创建的项目执行此操作。在应该创建元素后,我尝试添加这行代码:

$('#datepicker').datepicker();

但这不起作用。

我在附加项目时缺少什么,以及如何在附加项目后将 datepicker 添加到最终输入中。

【问题讨论】:

    标签: jquery datepicker append


    【解决方案1】:

    您必须先将g.sDiv 添加到文档中,以便$('#customSearch') 选择器找到该元素,否则该元素还不是文档的一部分,因此无法使用document.getElementById() 找到。

    $("body").append(g.sDiv);
    $("#customSearch").doSomething();
    

    【讨论】:

    • 谢谢。我想:document.createElement 将项目添加到页面......它肯定在那里,我可以毫无问题地将项目附加到 g.sDiv。我在将项目附加到我刚刚附加的项目时遇到问题(如果这有意义的话),例如,一旦我附加了一个 id 为 customSearch 的 div,我就无法将项目附加到 id 为 customSearch 的 div。
    • 您确定 id 是唯一的吗? alert($("id=[customSearch]").length)
    • 同样,元素必须是 dom 的一部分,例如,&lt;html /&gt; 节点的后代。它不能是一个分离的元素。
    猜你喜欢
    • 2020-09-11
    • 2012-05-24
    • 1970-01-01
    • 2013-07-14
    • 2021-01-20
    • 2012-01-11
    • 2017-01-16
    • 2014-11-20
    • 2011-05-25
    相关资源
    最近更新 更多