jquery在另一个旁边找到元素

时间:2010-05-20 19:29:26

标签: jquery

您好我有以下HTML:

<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调用的值设置为普通文本框。但问题是,我甚至无法获得与用户点击的按钮位于同一行的文本框的值。 谁能帮我? 非常感谢。

4 个答案:

答案 0 :(得分:18)

尝试:

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

或将next更改为find

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

由于next仅搜索紧随其后的兄弟

答案 1 :(得分:2)

我可以使用jQuery.next()功能。

答案 2 :(得分:1)

您的问题是“next()”将转到父级的下一个兄弟 - 而父级是<p>标记,因此兄弟(如果存在)是以下{{1} } 标签。

您需要<p>$(this).parent().children('[type=text]').val()

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