2016-07-24 72 views
-2

我在JavaScript以下代碼:如何連接innerhtml中的屬性值?

var counter=0; 
for(..){ 

Element.innerHTML = '<div id="myId">....</div>'; 

counter++; 
} 

,我想執行以下操作,動態地生成ID:

for(..){ 
var counter=0; 
... 
Element.innerHTML = '<div id="myId'+counter+'">....</div>'; 
... 
counter++; 
} 
+4

那麼是什麼問題? – Quentin

+1

似乎有一個問題是'counter'在'for'循環的每次迭代中被重置爲'0'? – guest271314

+0

對不起,計數器已經在循環之外,代碼很長,並試圖減少。即時通過JSON對象循環,並動態地將它們轉換爲HTML div,我以爲我有一個錯誤,但它已經是正確的。我忘了使用ID(bootstrap Collapse,popover ...)在其他div中進行相同的更改。我需要爲我的模板每個循環一個新的ID,以產生一個不同的div – Oscar

回答

2

移動

var counter = 0; 

for循環外面的,因爲你在每一個循環都重置它。

var counter = 0; 
for(...){ 
    //... 
    Element.innerHTML = '<div id="myId'+counter+'">....</div>'; 
    //... 
    counter++; 
} 
0

如果您已經使用for循環,請不要使用單獨的計數器。
請勿使用大寫字母Element作爲變量名稱。這已經是DOM interface,我想不出你應該重寫的原因。即使它不會導致代碼中的當前問題,這也是不好的做法。

var element = document.body // or grab any dom node 
var someAmount = 10 // or any amount 

// assuming you are looking to add additional divs with each iteration 
// which is what I assume you mean by 'concatenate' 
for (var i = 0; i < someAmount; i++) { 
    element.innerHTML += '<div id="myId'+i+'">....</div>' 
}