2013-10-20 162 views
0

我创建一个文本,并根据一定的条件对一个循环按钮的兄弟姐妹值点击发布按钮。掌握的JavaScript

我想这一点,但它只是给我的第一个文本区域和按钮的创建文本:

function post_pm_comment(thidid, pm_id, path, pm,getter) 
{ 
    var pm_text = document.getElementById("pm_text").value; 
} 

我该怎么办? 谢谢

+0

那么,您应该向我们展示您的HTML,首先...([tag:php]与JavaScript无关,浏览器认为这很重要,'查看源代码')。 –

+0

我确实向你展示了html是如何创建的。它只是一个textarea和一个触发onclick函数的按钮。 – beckinho

+0

Crowder的答案绝对是这样做的。但看起来你还需要一些其他参数,比如你的post_pm_comment函数。那些在那里做什么的争论,你在哪里得到这些?看起来这个代码片段不完整。可能是你应该首先发布实际的代码来获得更好的答案。 –

回答

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

Live Example | Source

+0

非常感谢您的回复,但是当我提醒(pm_text)时,没有任何反应。 我没有得到我在textarea里输入的文字 – beckinho

+0

克罗德的答案绝对是这样做的。但看起来你还需要一些其他参数,比如你的post_pm_comment函数。那些在那里做什么的争论,你在哪里得到这些?看起来这个代码片段不完整。可能是你应该首先发布实际的代码来获得更好的答案。 –

+0

@beckinho:这个答案的早期版本中有一个错别字,可能会解释这个错误。 (我有'var textarea = postButton.prevSibling;'我应该有'var textarea = postButton.previousSibling;'''''''''''我修正了错误,刚刚添加了一个实例。 –