2014-09-19 93 views
0

我想让NicEdi t仅适用于ID为'r_desc'的所有textareas。目前,这仅发生在while循环中生成的第一个窗体实例,而不发生在其他窗体中。我究竟做错了什么?使NicEdit出现在给定相同ID的所有实例中

的JavaScript

<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

$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++; 
} 

我也曾尝试:

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匹配的第一个元素。

您需要使用识别要转换为Nicedit

如果你使用类似getElementsByClassNamegetElementsByTagName,而不是元素的不同的方法(请注意,这些返回的元素不只是一个元素)

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++; 
} 

的JavaScript:

var els = document.getElementsByClassName("to-nice"); 
相关问题