2014-01-27 3 views
1

동일한 클래스의 여러 요소가 있습니다. 나는 앵커 태그의 두 번째 DIV를 클릭하면여러 요소, 같은 클래스, 하나의 요소 값 가져 오기 - jquery

<div class="test-container"> 
    <a class="dup-class"> 
     Get Value 
    </a> 

    <div class="product-list-col"> 
     1 
    </div> 
</div> 

<div class="test-container"> 
    <a class="dup-class"> 
     Get Value 
    </a> 

    <div class="product-list-col"> 
     2 
    </div> 
</div> 

<div class="test-container"> 
    <a class="dup-class"> 
     Get Value 
    </a> 

    <div class="product-list-col"> 
     3 
    </div> 
</div> 

내가 처음 사업부에하여 <a> 태그를 클릭하면이 .product-list-col 값의 값을 경고한다 1

, 그것은 경고한다 2

여기

$(".dup-class").on('click', function() { 
    cont = $(this + " .product-list-col").text(); 
    alert(cont); 
}); 

이 물건에 대한 모든 솔루션에 대한 코드입니까? 여기

그것의 jsfiddle의 : http://jsfiddle.net/Vigiliance/PLeDs/3/

답변

4

당신은()은 모든 .product-list-col

$(".dup-class").on('click', function() { 
    cont = $(this).siblings('.product-list-col').text(); 
    alert(cont); 
}); 

을 선택 있기 때문에 형제(), 코드가 작동하지 않는 이유는를 사용하거나 다음 내용 사용할 수 있습니다

$(".dup-class").on('click', function() { 
    cont = $(this).next('.product-list-col').text(); 
    alert(cont); 
}); 
+1

나는 siblings'이 next'가 현재 DOM 형성에 바인딩 할 것'때문에 훨씬 더 나은 옵션을 ... – Lix

+0

당신은 또한 내 요소에 대한 jQuery를 검색을함으로써이 작업을 수행 할 수있다'말 것 parent()와 같이 두 번째 매개 변수로 jQuery 검색 컨텍스트를 증명하면 $ ('. product-list-col', $ (this) .parent()). 요소가 형제가되는 것을 멈 추면. http://api.jquery.com/jquery/#selector-context – user1853181

1

이 작업을 수행 :

$(".dup-class").on('click', function() { 
    cont = $(this).next().text(); // this is the line where change done 
    alert(cont); 
}); 

http://jsfiddle.net/PLeDs/2/

+0

이것은 기술적으로 효과가 있지만 DOM 구조가 변경되는 즉시 중단되므로 좋지 않습니다. – user1853181

+0

이 해결 방법은 특정 종류의 문제에 대한 해결책입니다. 다음 요소가이 일에만 해당 될 것이라 확신하면'형제 ('someclass')와 같은 옵션이 있습니다. –

+0

DOM 구조에 의존하는 것은 나쁜 습관이 될 것이라고 지적했습니다. 절대 변하지 않아. – user1853181