2010-05-20 4 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> 

내가 원하는 것은 사용자가 버튼을 클릭하면, 나는 아약스에게 필드 필드의 내용을 사용하여 보낼 필요가 있다는 것입니다.

이것은 내가 성공하지 못하도록하려는 것입니다.

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

나는 숨겨진 필드에 텍스트 상자에 사용자 유형 및 값이 일반 텍스트 상자에 아약스를 호출하여받은 것을 설정 할 계획입니다. 하지만 문제는 사용자가 클릭하는 버튼과 같은 줄에있는 텍스트 상자의 값을 얻을 수 없다는 것입니다. 아무도 도와 줄 수 있습니까? 고마워요.

답변

18

시도 :

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

또는 변경 nextfind에 : next

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

는을 형제 자매 즉시 다음을 검색합니다.

+1

YES를 원한다! 잘 작동합니다. $ (this) .parent(). find ('[type = text]') .val(); 도와 주셔서 감사합니다 – thiagoleite

+0

사이에 아무것도없는 경우에만 작동합니다. – stuartdotnet

0

ID를 사용하여 텍스트 상자를 선택할 수 있습니까? 부모가 <p> 태그, 그래서 존재하는 경우 형제가, 다음 <p> 태그입니다 -

$(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

아니야, 왜냐하면 나는 많은 textboxes을 가지고 있고, 그들 모두를위한 핸들러를 개별적으로 설정하고 싶지 않기 때문이다. 나는 눌려진 버튼 – thiagoleite

+0

의 직전에 텍스트 박스를 확인해야 할 필요가 있습니다. 그래서 두 번째 옵션처럼 보이는 무언가가 작동해야합니다 ... – Rbacarin

1

귀하의 문제는 "다음()"부모의 다음 형제로가는 것입니다.

당신은 $(this).parent().children('[type=text]').val() 또는 $(this).parent().find('[type=text]')