2013-10-20 160 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;'''''''''''我修正了錯誤,剛剛添加了一個實例。 –