2011-08-11 14 views
0

私は2つのアイテムのセットを持っています.1つは、jQueryがクラスをクリック可能アイテムとして扱い、IDを取得しています。異なるクラスだが同じIDだ。同じIDを使用しています "this"を使用しているクラス

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

編集(15:

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

が、私はそれが対応項目の高さを変更する必要があり、次のことが可能です。 は今、私はそれがそうのようなIDを私に警告持っています: 08 EST)

私は実際には互いに作用する2つの別々のDIVを持っています。私はIDの一意性ルールについて知らなかった、私は同じように2番目の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

2番目のコード例には、いくつかのファンキーな構文があります。 '.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

あなたは2つの異なる要素に同じIDを割り当てていませんか?

もしそうなら、そうしてはいけません。

ていない場合は、なぜちょうど$(this).animate({width:"400px", opacity:1}, 400);