2011-11-24 39 views
1

全部,Javascript - 在代碼審查中使用innerHTML&id方法

以下是我正在處理的腳本的代碼。

它是什麼: 當按下藍色按鈕時,一個div應該出現在包含'5000'數字的框的頂部。

我遇到的問題是使用innerHTML &將id分配給動態創建的div。我在Firebug中沒有得到任何錯誤,所以我不知道我在哪裏出錯。

問題行:

eCreditTransactions[i].id = ("trans" + i); 

eCreditTransactions[i].innerHTML = '<div class="cCreditContainer"><span class="cCreditsNo">-50</span>&nbsp;<img class="cCurrency" src="" alt="" /></div><span class="cCloseMsg">Click box to close.</span><div class="dots"></div><div class="dots"></div><div class="dots"></div>'; 

這裏是全碼:

var eCreditSystem = document.getElementById("creditSystem"); 
var i = 0; 
var eCreditTransactions = new Array(6);     // 6 instances created which will be recycled 

function createCreditTransaction()     // func called when a transaction occurs, at the mo, attached to onclick() 
{ 
    if (i < 6) 
    { 
     $(eCreditTransactions[i]).remove(); 
     eCreditTransactions[i] = undefined;     // to delete the existing data in the index of array 
     addingElements (i);     // calling function 
    } else 
    if (i > 5 || eCreditTransactions[i] != undefined) 
    { 
     i = 0; 
     $(eCreditTransactions[i]).remove(); 
     eCreditTransactions[i] = undefined; 
     console.log(eCreditTransactions[i]); 
     addingElements (i); 
    } 
} 

function addingElements (arrayIndex)     // func called from within the 'createCreditTransaction()' func 
{ 
    console.log(eCreditTransactions[i]); 
    eCreditTransactions[i] = $(document.createElement('div')).addClass("cCreditTransaction").appendTo(eCreditSystem); 

// the problem area 

    eCreditTransactions[i].id = ("trans" + i); 
    eCreditTransactions[i].innerHTML = '<div class="cCreditContainer"><span class="cCreditsNo">-50</span>&nbsp;<img class="cCurrency" src="" alt="" /></div><span class="cCloseMsg">Click box to close.</span><div class="dots"></div><div class="dots"></div><div class="dots"></div>'; 

    console.log(eCreditTransactions[i]); 
    return i++; 
} 

Jsfiddle

回答

1

在這行代碼的:

eCreditTransactions[i] = $(document.createElement('div')) 

你科瑞荷蘭國際集團DOM元素,然後包裝它在一個jQuery對象

你需要使用它的方法在該對象上訪問一個id屬性

eCreditTransactions[i].attr('id', 'newId'); 

同爲innerHTML屬性

使用jQuery方法html();

eCreditTransactions[i].html(yourHtmlString); 

這裏docu

+0

看啊,現在我明白了。謝謝Irishka。這當然是有道理的。歡呼的幫助! – Kayote

+0

歡迎您) – Irishka