jQuery没有附加元素

时间:2013-01-16 21:57:42

标签: jquery datepicker append

我正在努力实现雄心勃勃并为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到最终输入。

1 个答案:

答案 0 :(得分:5)

您必须先向g.sDiv选择器添加$('#customSearch')以找到该元素,否则该元素尚未成为文档的一部分,因此无法使用document.getElementById()找到该元素

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