2011-03-14 6 views
1

현재 내가 이해할 수없는 문제가 있습니다. 동적 인 <p><div> 태그를 생성하는 jsp 스크립트가 있습니다. 각 <p> 태그에는 'parent'클래스가 있고 각 div 클래스에는 'child'클래스가 있습니다. 이제 내가 이루고자하는 것은 사용자가 특정 <p> 태그를 클릭하면 그 바로 아래 인 <div>이 나타나야한다는 것입니다. 그러나 내가 <p> 태그를 클릭하면 now..its는 다른 div태그도 모두 열립니다. 친절하게 도와주세요. 감사합니다.동적 div 및 p에 대한 jquery의 도움말

여러분 ... 고맙습니다. 코드에서 몇 가지 사항을 변경했습니다.

$(document).ready(function(){ 
$(".child").hide(); 
$(".parent").bind('click',function(){ 



$(this).next('.child').toggle("slow"); 


    }); 

});

$('p.parent').click(function(){ $(this).next('.child').show(); }); 

The .next() method jQuery를

에서

+0

당신은 우리가 지금까지 가지고 무엇을 고정 할 필요가 무엇인지 우리에게 코드를 보여 주시겠습니까 : 당신은 코드 <p></p><div></div>이있는 경우

이 사용합니까? –

답변

4

는 귀하의 경우 사업부가 될 것 "바로 다음 형제"를 선택 jQuery를 알려줍니다.

+1

다음 ('. 어린이')을하고 싶을 수도 있습니다. – Loktar

+0

@Loktar : 좋은 지적입니다. –

0

이 같은 페이지 얻을 수있는 JQuery와 선택기를 사용하는 경우 :

$('p.parent') 

이 클래스의 부모와 모든 페이지 태그를 선택됩니다. 예를 들어, $('p.parent, .child:first')을 선택하는 것과 같이 구체적으로 선택해야합니다. 첫 번째를 선택하고 jquery의 모든 선택기에 대해 http://api.jquery.com/category/selectors/을 확인하십시오.

클릭 한 p를 선택하려면 $ (this)를 사용하면됩니다.

$('p.parent').bind('click', function() { 
$(this).children('div').show(); // look at how you can use $(this) which will link to the p clicked on 
}); 
+0

나는 -1을주지 못했지만 어떻게 생각 하느냐에 따라 : 처음 사용되었습니다. 그러면 클래스 parent가있는 : first 요소가 선택됩니다. 올바른 방법은 부모 내에서 $ ('. child : first')입니다. OP는 p 태그를 클릭 한 후 클래스 하위 항목이 선택된 첫 번째 div를 원합니다. – Loktar

0

당신은 JQuery와 어린이 선택기를 사용할 필요는 :

$('p').click(function(){ 
    $(this).find('div').show(); 
}); 

이 코드가 잘못입니다 작동하는 경우 : http://api.jquery.com/category/traversing/tree-traversal/

내가 여기에 코드없이 대답 할 수는 없지만 내 시도이다 이런 식으로 : <p><div></div></p>.

$('p').click(function(){ 
    $(this).next().show(); 
}); 
관련 문제