Jquery DOM操作-更改跨度

Jquery DOM操作-更改跨度,jquery,html,Jquery,Html,我有以下HTML: <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> })) 它可以工作,但我需要直接控制它,因为从程序上来

我有以下HTML:

<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>
}))

它可以工作,但我需要直接控制它,因为从程序上来说,我需要改变跨度的能力

我尝试了以下方法,但它只添加了另一个跨距,而不是覆盖现有跨距:

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


不确定这是否有效,但尝试将元素传递给函数并在以后使用它,而不是“this”

您所做的将为您单击的div创建一个新的span同级。尝试将next()更改为children()并使用伪选择器“span:first”

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

如果要捕获的单击位于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');
您正在尝试选择与div处于同一级别的span元素。在html中您没有该元素。此外,span元素没有src属性


.

是否尝试设置跨度的src属性?你想要实现什么还不清楚。也许您应该编写所需的结果?对span标记()使用CSS,并在
鼠标上方更改CSS样式。单击span#sum_19或div#open-19?
$("#open_19").click(function(){
  $("img", this).attr("src", "/frontent_images/smiley_light.png");
});
$("#open_" + mainid[1]).next("span").attr('src','/frontent_images/smiley_light.png');