2010-09-19 53 views
1

林停留在一些的jQuery ATTR ID,我不知道爲什麼它不是工作...jQuery的獲得活動圖像

$('img').click(function() { 
    $('img').removeClass('bob'); 
    $(this).addClass('bob'); 
}); 

var test = $('img.bob').attr('src'); 
$('div.button').click(function() { 
    alert(test); 
}); 

基本上我需要得到選擇的圖像的ATTR ID,但警報只返回'null'。

任何建議將不勝感激。進出口拉我的頭髮...

A.

+0

一開始猜測你想要'$( 'img.bob')ATTR( '身份證');' – 2010-09-19 16:35:06

+1

做:'$( 'div.button')點擊(函數(){警報($('img.bob')。attr('id'));});'work? – 2010-09-19 16:35:49

回答

1

記住,你分配不運行,直到你實際點擊的<img>click事件,所以試圖讓一個在<img>元素上發生任何點擊事件之前,類.bob的圖像將導致匹配0個元素(除非在加載頁面之前已將.bob分配給其中一個<img>元素)

您需要檢索中的'id'按鈕的點擊處理程序。

此外,您可以通過緩存找到的<img>元素(只要在頁面加載後不動態添加其他元素),使代碼更高效一些。

var $img = $('img').click(function() { 
    $img.not(this).removeClass('bob'); 
    $(this).addClass('bob'); 
}); 

$('div.button').click(function() { 
    var test = $img.filter('.bob').attr('id'); 
    alert(test); 
}); 

如果您要動態添加圖像,則不需要緩存它們。 。

$('img').click(function() { 
    $('img').not(this).removeClass('bob'); 
    $(this).addClass('bob'); 
}); 

$('div.button').click(function() { 
    var test = $('img.bob').attr('id'); 
    alert(test); 
}); 
0

試試這個:

$('div.button').click(function() { 
    alert(this.id.ToString()); 
});