2011-08-11 4 views
0

두 세트의 항목이 있습니다. 하나는 클래스를 클릭 가능한 항목으로 취급하고 ID를 가져 오는 jQuery를 가진 항목이고 다른 항목은 해당 항목 집합입니다. 같은 이드이지만 다른 클래스.다른 ID가 다른 클래스 "this"를 사용합니다

$(".class1").click(function(){ 
    $(".class2".this.id).animate({width:"400px", opacity:1}, 400); 
}); 

편집 (15 :

$(".class1").click(function(){ 
    alert(this.id); 
}); 

내가는 대응 항목의 높이를 변경하도록 다음을 수행 할 수 는 지금은 그렇게처럼 ID 나에게 경고있어 : 08 EST)

실제로 두 개의 서로 다른 DIV가 서로 작용합니다. ID 고유성 규칙에 대해 알지 못했지만 두 번째 DIV에서 하위 클래스를 사용하여 동일한 작업을 수행 할 수 있습니까?

<div class="class1">Click Me!</div> 
<div class="class2 class1">Stuff happens here</div> 

$(".class1").click(function(){ 
    $(".class2 "+this.class).animate({width:"400px", opacity:1}, 400); 
}); 
+1

* "... 다른 클래스 있지만 동일한 ID가"* 그 교란 문의를. –

+1

'id' ***는 문서 내에서 고유해야합니다. *** [W3.org] (http://www.w3.org/TR/html4 /struct/global.html#h-7.5.2). –

+0

두 번째 코드 예제에는 펑키 한 구문이 있습니다. '.class2 ".this.id'? –

답변

0

예,하지만 코드에 구문 오류가 있습니다. 여기가 해결되었습니다

$(".class1").click(function(){ 
    $(".class2 #" + this.id).animate({width:"400px", opacity:1}, 400); 
}); 

기술적으로하지만 말하기, 그것은 중복의 ID가 고유 한 (있어야)되기 때문에 클래스의 컨텍스트 내부의 ID를 지정합니다 (속도가 느린!).

$(".class1").click(function(){ 
    $("#" + this.id).animate({width:"400px", opacity:1}, 400); 
}); 

는 사실, 당신도 너무 같은 DOM 개체에서 jQuery 오브젝트를 얻을 수 있습니다 : 요소의

$(".class1").click(function(){ 
    $(this).animate({width:"400px", opacity:1}, 400); 
}); 
0

IDS 항상 페이지에서 고유해야합니다. 귀하의 경우에는 클래스 이름이 differenct이므로 클래스 이름을 사용하여 요소를 찾을 수 있습니다. 시도해보십시오

$(".class1").click(function(){ 
    $(".class2").animate({width:"400px", opacity:1}, 400); 
}); 
0

두 ID가 다른 요소에 할당되어 있지 않습니까?

그렇다면 그렇게해서는 안됩니다. 그렇지 않으면

, 왜 그냥하지 $(this).animate({width:"400px", opacity:1}, 400);

관련 문제