2013-01-16 54 views
2

我试图做到雄心勃勃,并将其他搜索框添加到flexigrid ... 我已经钻研到flexigrid脚本并找到添加搜索元素的位置。然后我说下面我自己的输入字段:jQuery不附加元素

$(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>"); 

(它正确地呈现),然后尝试添加到该分区使用:

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

输入框未添加到页面。

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

另外,创建输入框我想添加datepicker ui。我怎样才能做到这一点动态创建的项目。我试过在元素被创建之后添加这行代码:

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

但这不起作用。

我追加项目时缺少什么,以及如何在添加日期选择器后添加日期选择器到最终输入。

回答

5

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

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

谢谢。我想:document.createElement将项目添加到页面...它当然在那里,我可以追加项目g.sDiv没有问题。我遇到问题追加项目,我刚刚追加的项目(如果这是有道理的),例如,一旦我附加了一个ID与ID customSearch我无法追加项目到ID为customSearch的股利。 – Ray

+0

你确定这个ID是唯一的吗? 'alert($(“id = [customSearch]”)。length)' –

+0

同样,元素必须是dom的一部分,例如''节点的后代。它不能是一个独立的元素。 –