我根据特定条件在循环上创建一个textarea和一个按钮:
while($row_c= mysqli_fetch_array($result_comments))
{
//some code goes here
<textarea type="text" id="pm_text" name="text"></textarea><br>
<button name="send_comment" id="post_comment" class="button" onClick="post_pm_comment()">Post</button>
}
现在在我的函数“post_pm_comment”中,我想在单击post按钮时访问textarea中写的文本。
我尝试了这个,但它只给了我第一个textarea的文本和创建的按钮:
function post_pm_comment(thidid, pm_id, path, pm,getter)
{
var pm_text = document.getElementById("pm_text").value;
}
我该怎么办? 谢谢
答案 0 :(得分:3)
您的代码输出的DOM结构无效,因为id
值必须在页面上是唯一的。您不能在多个元素上使用相同的id
。完全删除id
值,您不需要它们。
完成后,最小化更改的答案是将this
传递给您的处理程序:
onClick="post_pm_comment(this)"
...然后在你的处理程序中,进行导航:
function post_pm_comment(postButton)
{
var pm_text;
var textarea = postButton.previousSibling;
while (textarea && textarea.nodeName.toUpperCase() !== "TEXTAREA") {
textarea = textarea.previousSibling;
}
if (textarea) {
pm_text = textarea.value; // Or you may want .innerHTML instead
// Do something with it
}
}