2014-09-19 7 views
0

'r_desc'의 ID를 가진 모든 텍스트 영역에 대해서만 NicEdi이 작동하려고합니다. 현재 이것은 while 루프 내에서 생성 된 양식의 첫 번째 인스턴스에만 발생하며 다른 루프에서는 생성되지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?동일한 ID가 부여 된 모든 인스턴스에 NicEdit을 표시하십시오.

자바 스크립트 나 또한 시도

$i=0; 
while($i<5){ ?> 
<form id="content" name="content" method="POST" action="index.php"> 
    <textarea name="r_type" id="textarea"></textarea> 
    <textarea name="r_desc" id="r_desc"></textarea> 
    <textarea name="r_rate" id="textarea"></textarea> 
    <input type="submit" id="button" value="Update" /> 
</form> 
<? $i++; 
} 

<script src="http://js.nicedit.com/nicEdit-latest.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
    bkLib.onDomLoaded(function() { 
     nicEditors.editors.push(
      new nicEditor().panelInstance(
       document.getElementById('r_desc') 
      ) 
     ); 
    }); 
    </script> 

PHP/HTML :

bkLib.onDomLoaded(function() { 
    var textareas = document.getElementsByID("r_desc"); 
    for(var i=0;i<textareas.length;i++) 
    { 
     var myNicEditor = new nicEditor(); 
     myNicEditor.panelInstance(textareas[i]); 

    } 
}); 

답변

1

요소에는 고유 한 ID가 있어야합니다. getElementById의 구현은이를 알고 있으며 지정된 ID와 일치하는 첫 번째 요소 만 반환합니다.

당신은 당신이 getElementsByClassName 또는 그 대신 getElementsByTagName 같은 것을 사용하는 경우 Nicedit

로 변환 할 요소를 식별하는 다른 방법을 사용해야합니다 (참고 이러한 반환 요소뿐만 아니라 요소)

PHP :

$i=0; 
while($i<5){ ?> 
<form id="content" name="content" method="POST" action="index.php"> 
    <textarea name="r_type" class="to-nice"></textarea> 
    <textarea name="r_desc" ></textarea> 
    <textarea name="r_rate" class="to-nice"></textarea> 
    <input type="submit" id="button" value="Update" /> 
</form> 
<? $i++; 
} 

자바 스크립트 :

var els = document.getElementsByClassName("to-nice");