2013-05-05 14 views
1

鑑於存儲li元素的對象,我想找到自己的標識:對象不會給ATTR元素

$($selected).each(function(){ 
    console.log($selected.attr('id')); 
     $(this).fadeOut(function(){ 
      $(this).appendTo($list).removeClass("ui-state-highlight").fadeIn(); 
     });  
    });    
} 

這只是給我的第一個。爲什麼?

+2

附帶的問題,但它看起來像'$ selected'已經是一個jQuery對象,所以你不需要說'$($ selected)''''selected.each(...)'會工作很好。 – IMSoP 2013-05-05 23:18:51

+0

但是選中的$包含的值並不都是相同的,所以當我需要刪除類時,我需要循環通過它們中的每一個,不是這樣嗎? – user2268106 2013-05-05 23:30:29

+1

我想你誤會了;是的,你需要循環使用'.each(...)';那部分是好的。但'$(variable)'只是將'variable'作爲一個jQuery對象包裝;如果'variable'已經是一個jQuery對象,它什麼也不做。所以你可以編寫'$($($($ selected)))。each(...)',它仍然會和'$ selected.each(...)一樣' – IMSoP 2013-05-05 23:33:49

回答

4

那是因爲你的$selected調用對象的方法attrattr只返回jQuery中收集第一個選擇的元素的ID,你應該在each回調使用this.id$(this).prop('id')

$selected.each(function(index, element) { 
    console.log(this.id); 
    // ...  
}) 
+1

只是brouth流淚給我的眼睛!謝謝你..在這附近捅了我兩個小時.. – user2268106 2013-05-05 23:26:40

0

你抓你的原始$selected對象的'id'屬性,而不是單個項目的.each(),這將給予你的回調爲this遍歷。所以你想要console.log($(this).attr('id'))

正如其他人所指出的那樣,您可以進行一些其他調整,但這是您的主要錯誤。

+0

我試過了,但沒有定義函數..thx! – user2268106 2013-05-05 23:32:20