使用mootools我有一個'builder'類來製作表單對象,動態創建div。 某些表單對象由多個不同的對象組成。例如,選擇對象具有一個過濾選擇器內容的文本框和一個用於保存選擇的按鈕。使用javascript和mootools追加動態創建的div
在這種情況下,我希望過濾器框和按鈕位於一個div中,該div被附加到整個表單對象的div上以便具有「包裝器」。
但是,我有問題附加到動態創建的表單對象的div。
在DOM被加載後,將「助洗劑」類被稱爲:
window.addEvent('domready', function()
{
builder = new Build();
});
生成器創建一個新的div這樣
var div = document.createElement('div');
var div_id = 'the_div_id_for_my_form_object';
div.setAttribute('id', div_id);
然後創建表格對象這需要在div作爲它的參數
var form_obj = superSelector(div);
裏面的form_obj一個構造函數,這個div被保存爲一個成員variabl e,this.div = div。 創建過濾器文本框以及按鈕。
這是我看到問題的地方。 (因爲過濾器文本框和按鈕的問題都是相同的,所以我只描述文本框的情況)
form_obj的div傳遞給過濾器文本框的構造函數。 在創建過濾器的文本框,它創造了自己一個div
var div = document.createElement('div');
var div_id = 'the_div_id_for_my_filter_box';
當我嘗試添加該div來form_obj的DIV,我得到一個js錯誤,說我試圖追加到「空」
var filterBox = new Class({
initialize: function(name, form_obj)
{
this.name = name;
this.div = document.createElement('div');
this.div.setAttribute('id', name);
document.getElementById(form_obj.div).appendChild(this.div);
}
產量:
"Uncaught TypeError: Cannot call method 'appendChild' of null"
我不知道如何來解決這個問題。我明白我想追加的div並不存在於我試圖追加它的時候。然而,我看不出產生事件的方式,它告訴我它何時存在,以便我可以推遲構建任何'孩子'div直到該點
'getElementById'只接受一個字符串作爲參數,似乎你傳遞一個引用。 – PanterA