2011-11-24 27 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