2012-04-30 4 views
1

jQuery 코드로 올바른 요소를 선택하는 데 문제가 있습니다. 내가 바로 "확인"버튼 위에있는 입력 필드의 값을 잡기 위해 노력하고있어,하지만 난 문제가 그 일을하는 데 문제가"this"jquery 바로 위에 형제 찾기

<div class='bad_link'> 
    <p><a href='...'>...</a></p> 
    <p><a href='...'>...</a></p> 
    <input type='text' size='100' name='....' /> 
    <input class='check_button' type='button' name='check_link' value='Check' /> 
</div> 

:이 같은 DOM은 기본적으로 모습입니다.

$(document).ready(function() { 
    $(".check_button").on('click', function() { 
     window.alert($(this).siblings().find('input').text()); 
    }); 
}); 

가 어떻게 그 값을 잡을 수

??이 지금 내 jQuery 코드는

입니다 감사!

+0

.find()는 하위 항목 만 찾습니다. – j08691

답변

5

.prev()은 확인란의 이전 요소를 선택합니다.

window.alert($(this).prev().val()); 
2

사용 prev() 이전 형제를 선택하고 val()입니다 작업을 수행 할 요소를 찾으십시오. 형제 자매를 사용할 때 일반적으로 나쁜 형식으로 간주되는 HTML과 밀접하게 연관됩니다. 태그를 이동하거나 다른 태그를 추가하면 기능이 중단 될 수 있음을 이해하는 것은 어렵습니다.

대신 클래스로 작업하려는 요소를 제공하는 것이 좋습니다. something like obj_myElement_xxx 여기서 xxx는 요소의 ID입니다.

$(".obj_myElement_" + $(this).attr("data-myElementId")) 

당신이 조작하려는 요소를 잡아 : 그럼 그래서 당신이 사용할 수있는 요소의 ID에 해당하여 버튼의 속성을 설정합니다.

1

당신이 아닌 다른 방법을 고려할 수 있습니다 :

$(".check_button").on('click', function() { 
     window.alert($(this).prev('input[type="text"]').val()); 
    }); 

$(this).prev().val();

또한 입력 값을 얻을 수있는 옵션

관련 문제