2011-08-11 88 views
0

我有兩套項目,我有我的jQuery對待類作爲一個可點擊的項目和抓住id,它執行一個任務對另一組相應的項目一個不同的類但是相同的ID。 現在我知道了我報警的ID,像這樣:相同的ID不同的類使用「這個」

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

我可以做下面有它改變對應項的高度:

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

編輯(15: 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」 *這是一個令人不安的聲明。在js中,連接也是'+'而不是'。' –

+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);

相關問題