我有一个包含多行的表,这些行都具有相同的类。单击图像时,会有一个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')或类似的东西。请帮助:)谢谢!
答案 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”。