jquery只更改当前行的图像src

时间:2011-08-10 17:37:48

标签: jquery

我有一个包含多行的表,这些行都具有相同的类。单击图像时,会有一个db调用然后返回json。我有一切正常工作,但当我点击图像时,表中的所有更改。我只想让当前的行图像受到影响。

示例表:

<tr class="changerow"> 
<td><a href="" class="hide"><img src="image.png" class="someimage" /></a></td>
<td><a href="" class="hide"><img src="image.png" class="someimage" /></a></td>
<td><a href="" class="hide"><img src="image.png" class="someimage"  /></a></td>
</tr>

Jquery的:

$('.hide').live('click',function(){
var row=$(this);
$('.someimage').attr("src","newimage.png");
});

所以,我知道我需要以某种方式识别当前行并创建变量“row”。不完全确定如何做到这一点。正在考虑使用row.parents('。changerow')或类似的东西。请帮助:)谢谢!

4 个答案:

答案 0 :(得分:1)

试试这个

$('.hide').live('click',function(e){
   $('.someimage', this).attr("src","newimage.png");

   //Closest row
   var $row = $(this).closest("tr.changerow");
   e.stopPropagation();
});

答案 1 :(得分:0)

在此.hide元素中找到图片(并将其更改为src):

$('.hide').live('click',function(){
   $('.someimage', this).attr("src","newimage.png");
});

row是:

var row = $(this).closest('tr');

答案 2 :(得分:0)

您可以使用以下内容获取当前对象上方的第一行:

$(this).parents('tr:first')

答案 3 :(得分:0)

使用: $(本)。家长( 'TR')找到( 'someimage。 ')ATTR(' SRC' 'new.png'。);

另外,你可以将点击处理程序放在img标签而不是锚标签上吗?这样可以避免在标签onclick属性上使用e.stopPropagation()或“return false”。