2013-01-16 153 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的一部分,例如''節點的後代。它不能是一個獨立的元素。 –