jQuery获取活动图像的attr id

时间:2010-09-19 16:33:26

标签: jquery image

我坚持一些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'。

任何建议都将不胜感激。我把头发拉出来......

一个。

2 个答案:

答案 0 :(得分:1)

请记住,在您实际点击click之前,您分配的<img>事件无法运行,因此在发生任何点击事件之前,尝试获取包含类.bob的图像<img>元素将匹配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);
});

答案 1 :(得分:0)

试试这个:

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