2013-03-08 63 views
0

我有以下HTML:jQuery的DOM操作 - 改变跨度

<div id="open_19" class="smile"> 
     <span><img src="http://localhost:3000/frontent_images/smiley.png"> </span> 
     <span id="sum_19" class="value">12</span> 
</div> 

当该ID的用户点击,第一跨度应在其SRC切换到另一个图像(smiley_light.png)。 我遇到问题以改变其价值。

如果我使用:

jQuery('.smile span img').mouseover(function(){ 
//jQuery(this).attr('src','/frontent_images/smiley_light.png'); 

});

它的工作原理,但我需要在它的直接控制,因为编程我需要改变跨度能力。

我曾尝试以下,这只会增加而不是overwritting现有彼此跨度:

$("#open_" + mainid[1]).next("span").attr('src','/frontent_images/smiley_light.png'); 

想法?

+0

您尝试设置一个跨度的src属性?你想达到什么目前还不清楚。也许你应该写出想要的结果? – 2013-03-08 14:12:54

+0

使用CSS跨度标签(['背景image'(https://developer.mozilla.org/en-US/docs/CSS/background-image))和'mouseover'改变CSS样式。 – Eich 2013-03-08 14:15:38

+0

点击在量程#sum_19上,或在div#open-19上? – vintem 2013-03-08 14:16:11

回答

1

如果单击您采集是在div你可以这样做:

$("#open_19").click(function(){ 
    $("img", this).attr("src", "/frontent_images/smiley_light.png"); 
}); 

这你只能捕获触发点击事件的元素内的img元素。

顺便说一句,这条线:

$("#open_" + mainid[1]).next("span").attr('src','/frontent_images/smiley_light.png'); 

你想选择一个span元素是在同一水平的股利。在你的HTML你没有。另外,span元素没有src属性。

Here's a JSFiddle of that code

+0

这样做。接受的答案:) – 2013-03-09 17:42:16

0
jQuery('.smile span img').mouseover(function(el){ 
    jQuery(el).attr('src','/frontent_images/smiley_light.png'); 
}); 

不知道这是否正常工作,但尝试的元素传递给函数,并用它之后,而不是“本”

0

你在做什么,将创建一个新的跨越同级的点击股利。 。 。 。 。尝试改变下一个()孩子(),并使用伪选择“跨度:第一”

 $("#open_" + mainid[1]).children("span:first").attr('src','/frontent_images/smiley_light.png');