2011-04-27 67 views
2

我有以下线的问题:jQuery和CSS背景变化

document.getElementById("giftcard").getElementsByTagName("label").style.backgroundImage ="url(giftcard_icon-d.jpg)"; 

我想点击一个label后更改背景图片。

我在页面上有5 label s,但是当我点击label时,背景应该改变它。其他标签应该重置为使用这个giftcard_icon-d.jpg图片作为他们的背景。

我该如何解决这个问题?

$(document).ready(function() { 
    $('#giftcard label').click(function() { 
     document.getElementById("giftcard").getElementsByTagName("label").style.backgroundImage ="url(giftcard_icon-d.jpg)"; 
     this.style.backgroundImage ="url(giftcard_icon-a.jpg)";  
}); 
+0

你能发表一些html吗? – LostLin 2011-04-27 20:25:25

+0

究竟发生了什么?他们都没有背景变化? – 2011-04-27 20:27:19

回答

4

如果你使用jQuery,这应该做的伎俩:

$(document).ready(function() { 
    $('#giftcard label').click(function() { 
     $("#giftcard label").css("background-image", "url(giftcard_icon-a.jpg)"); 
    }); 
}); 

但也要看标识是否正确,标签存在,且图像URL是有效的。

对于多label的你应该确定一个选择:

$("#giftcard > label").css("background-image", "url(giftcard_icon-a.jpg)"); 

要总结什么是你想要的后更新:

$('#giftcard label').click(function() { 
    $("#giftcard label").css("background-image", "url(giftcard_icon-d.jpg)"); 
    $(this).css("background-image", "url(giftcard_icon-a.jpg)");   
}); 
+0

完美!它现在有效。 (“#giftcard label”)。css(“background-image”,“url(giftcard_icon-d.jpg)”);($('#giftcard label')。 ) “); \t this.style.backgroundImage =” URL(giftcard_icon-A.JPG)“; \t \t \t \t }); \t \t' – 2011-04-27 20:37:28

+0

是的,我发布后正确解决了你想要的问题 - 我将其添加到答案中。 – 2011-04-27 20:40:10

2

首先您的混合香草的JavaScript和jQuery这里,似乎有点傻。如果你想改变其他标签为“复位”他们,你可以做这样的事情:

$(document).ready(function() { 

    $('#giftcard').delegate('label', 'click', function() { 

    $(this).css('background', 'url(giftcard_icon-d.jpg)'); 

    $('#giftcard > label').not(this) 
    .css('background', 'url(giftcard_icon-a.jpg)'); 

    }); 

}); 

小提琴:http://jsfiddle.net/garreh/GUFtx/

+0

很好,这个工程。 – 2011-04-27 20:42:48

1

如果我的理解是正确这应该做的伎俩

$(function() { 
    $('#giftcard label').click(function() { 
     $('#giftcard label').css("background-image", "url(giftcard_icon-d.jpg)"); 
     $(this).css("background-image", "url(giftcard_icon-a.jpg)"); 
    }); 
}); 

工作样本 http://jsfiddle.net/FvNdR/

+0

这就是我所做的:) – 2011-04-27 20:43:25

+0

@XML家伙我猜你的疑问只是如何设置jQuery的样式属性,当@Mr。失望张贴他的答案,你有想法,并由你自己解决。 – 2011-04-27 20:45:00