javascript
  • innerhtml
  • 2016-07-24 2 views -2 likes 
    -2

    I 자바 스크립트에 다음 코드가 있습니다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

    'for' 루프가 반복 될 때마다'counter'가'0'으로 리셋되는 것이 하나의 이슈입니까? – guest271314

    +0

    죄송합니다. 카운터가 이미 루프 외부에 있습니다. 코드가 매우 길어서 줄이려고했습니다. JSON 객체를 통해 루핑하여 동적으로 HTML div로 변환하면 실수가 있다고 생각했지만 이미 옳았습니다. ID (bootstrap Collapse, popover ...)를 사용하여 다른 div에서 동일한 변경을하는 것을 잊었습니다. 그리고 나는 각기 다른 ID를 생성하는 템플릿을 필요로한다. – Oscar

    답변

    2

    이동 루프의

    var counter = 0; 
    

    외부 왜냐하면 모든 루프에서 재설정하기 때문입니다.

    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>' 
    } 
    
    관련 문제