2012-03-07 4 views
0

고유 한 ID 이름의 일부를 동일한 ID를 가진 div의 일부와 일치시킬 필요가 있지만 css로 숨겨진 상황이 있습니다.jquery matching classes

이와같이;

<a class="popup" id="productTip348_27598" href="#">Link text</a> 

과 :

<div class="popupContent" id="productTip348_27598"> ... </div> 

아이디어는 내가 링크 위로 마우스를 이동하여 마법으로 표시 동일한 ID를 가진 div.popupContent을 것이다. 같은 클래스의 요소가 여러 개있을 것입니다. ID는 다양합니다.

저는 불행히도 jQuery 마법사가 아니므로이 문제에 대한 도움이 필요합니다.

+5

당신은 "ID가 다양합니다"라고 말했지만 동일한 ID로 두 개의 다른 요소를 표시하고 있습니다. 이는 불법이며 예기치 않은 결과를 초래할 수 있습니다. – devnull69

답변

2

설명에 언급 된 바와 같이 여기에 예제에 중복 된 id 속성이 사용되어 유효하지 않습니다.

대신, a 요소의 href atrtribute에 표시 사업부의 id을 넣어보십시오

$(".popup").hover(
    function() { 
     $($(this).attr("href")).show(); 
    }, 
    function() { 
     $($(this).attr("href")).hide(); 
    } 
); 
: jQuery를에 다음

<a class="popup" href="#productTip348_27598">Link text</a> 

, 호버에 관련 사업부를 보여주기 위해 href를 사용

+0

맞습니다. 코드를 약간 수정하고 올바르게 작동하도록 값을 전환해야했습니다. 대신 나는 아래에 언급 한 훨씬 더 나은 결과를 얻었습니다. 감사하지만, 손을 빌려 주셔서 감사합니다. :) – Stagen

1

.popupContent.popup 요소 안에 있습니까? 그렇다면;

$(document).ready(function() { 

    $('.popup').hover(
    function() { // Triggered on both mouseenter and mouseleave events 
     $(this).find('.popupContent').toggle(); 
    } 
); 

}); 

"div.popupContent with same ID".

ID는 고유하며 다른 요소와 공유 할 수 없습니다.

+0

맞습니다. 코드를 약간 변경해야 작동합니다. – Stagen

0

이것은 내가 친구의 도움을 받아 내놓은 결과입니다.

호버 요소에 할당 된 클래스의 이름이 변경되었습니다. 팝업의 ID를 data-id의 ID로 변경했기 때문에 동시에 더 독특하고 유효합니다.

$(".popupLink").hover(function(){ 
    var selectedId = $(this).attr("id"); 
    $('[data-id='+selectedId +']').toggle() 
}); 

이렇게하면 내 목표를 달성 할 수있었습니다.

그러나이 주제에 대한 의견을 보내 주신 분께 감사드립니다. 매우 감사. :)