2015-04-22 28 views
0

我想分配一個列表項id的值給一個變量,然後使用該變量並改變一些jquery函數的網頁的整個設置。但現在我只是試圖測試整個事情並註銷變量的新值。歸因於一個id jQuery的變量

我在這裏閱讀使用.attr('id'),但我一直未定義。下面是HTML代碼的一部分:

<ul class="vilains"> 
     <li id="Joker"><img src="image/Joker.jpg" alt="The Joker"></li> 
     <li id="Lex Luther"><img src="image/Lex%20Luther.png" alt="Lex Luther"></li> 
     <li id="The Trixter"><img src="image/The%20Trixter.jpg" alt="The Trixter"></li> 
     <li id="The Kingpin"><img src="image/The%20Kingpin.png" alt="The Kingpin"></li> 
    </ul> 

我知道超級英雄......這只是玩弄和測試我的知識....

這裏是我的jQuery代碼

$(document).ready(function() { 
    $(".vilains").find("li").on("click", function(){ 
     var ennemy = $(this).attr('id'); 
     console.log(ennemy); 
    }); 

}); 

日誌始終未定義。 我在做什麼錯了? 也有可能得到圖像中的alt值嗎?

感謝

+1

作品從我能看到完美的罰款。 – Shikkediel

+2

我在這裏沒有看到問題。它工作正常,而不是未定義http://jsfiddle.net/yhvzatgf/ – Aram

+0

如果HTML元素是動態插入/添加,使用[事件委託](https://learn.jquery.com/events/event-delegation/) 。 –

回答

0

你去那裏:

$(document).ready(function() { 
     $(".vilains li").on("click", function(){ 
     var ennemy = $(this).attr('id'); 
     console.log(ennemy); 
     console.log($(this).children('img').attr('alt')); 
    }); 
}); 

這裏有一個小提琴

https://jsfiddle.net/38zvrypg/3/

+1

以上是更好的方法,但原始代碼不是'錯誤'。 – Shikkediel

+0

如果日誌未定義之前,與此代碼,它仍然是未定義的,使用查找的原始代碼可能更快 – Huangism

+0

嘗試它的小提琴完全適合我...我不知道如果發現更快,那麼直接選擇器再執行一個方法。 –