2010-05-20 130 views
8

嗨,我有以下的html:的jQuery尋找元素旁邊另一

<p> 
    <input type="text" name="field1"/> <input type="hidden" name="fieldh1"/> 
    <button type="button" class="sendInfo">Send</button> 
</p> 
<p> 
    <input type="text" name="field2" /> <input type="hidden" name="fieldh2"/> 
    <button type="button" class="sendInfo">Send</button> 
</p> 

我要的是,當用戶點擊該按鈕,我需要使用Ajax場字段的內容發送。

這就是我想要做的沒有成功。

$(function() { 
     $('button.sendInfo').live('click', function() { 
      var id = $(this).parent().next('[type=text]').val(); 
      alert(id); 
     }); 
    }); 

我打算設置從AJAX調用到正常的文本框收到什麼文本框的用戶類型的隱藏字段和值。但問題是,我甚至無法獲得與用戶點擊的按鈕位於同一行的文本框的值。 任何人都可以幫助我嗎? 非常感謝。

回答

18

嘗試:

$(this).siblings('input:text').val(); 

或更改nextfind

$(this).parent().find('[type=text]').val(); 

next只搜索立即以下同級

+1

是的! This works fine: $(this).parent()。find('[type = text]')。val(); 感謝您的幫助 – thiagoleite 2010-05-20 19:44:04

+0

找到只有在兩者之間沒有任何作品.. – stuartdotnet 2013-08-23 04:51:51

0

你可以使用ID選擇你的文本框?

$(function() { 
    $('button.sendInfo').live('click', function() { 
     //what about this: 
     var id = $('#textBoxID').val(); 
     alert(id); 
     //or this 
     var id2 = $('+ input', this).val(); 
     alert(id2); 
    }); 
}); 
+1

不,因爲我有很多文本框,我不想爲它們單獨設置處理程序。我需要確定在按下按鈕 – thiagoleite 2010-05-20 19:41:52

+0

好之前的文本框,所以,也許,看起來像第二個選項應該工作... – Rbacarin 2010-05-20 20:10:51

1

你的問題是,「下一個()」將父的下一個兄弟 - 和家長是<p>標籤,所以兄弟姐妹,如果存在的話,是以下<p>標籤。

你想要$(this).parent().children('[type=text]').val()$(this).parent().find('[type=text]')