使NicEdit出现在给定相同ID的所有实例中

时间:2014-09-19 05:37:43

标签: javascript php nicedit

我试图让NicEdi仅适用于ID为'r_desc'的所有textareas。目前,这仅发生在while循环中生成的表单的第一个实例,而不是其他形式。我做错了什么?

的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 个答案:

答案 0 :(得分: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");