jquery 在 table 行中找到并单击图像,选中复选框

jquery find and click image in table row, on checkbox checked

我有一个 ASP Gridview,它在一列中有一个 img 标签,在下一列中有一个复选框。如果图像的 src 包含特定字符串,我想在用户选中复选框时触发我放在 img 上的点击事件(针对选定的行)。

将这个 $("[src*=plus]").trigger("click"); 放在我的复选框的点击事件中是可行的,但它会为每一行触发事件,而不仅仅是选中复选框所在的那一行。 我已经尝试了几种方法,最新的是 $(this).closest("tr").child("[src*=plus]").trigger("click");,但我无法让它仅在一行中触发。

如何找到正确的 img 标签并触发它的点击事件?

我认为你最好将更多数据属性(如 data-id)添加到每一行,并使用类似以下内容的内容:

# suppose the row/element you want has data-id = 3

$("[data-id=3]").trigger("click");

为什么在创建专栏时不使用 asp 标签?可以使用模板列使用您从后面的代码传递的数据源中的数据来完成。

  function DoSomething(Obj) {
    alert($(Obj).attr('src'));
}

$(document).ready(function () {     

    $('.test').click(function () {        

    //if($(this).closest('tr').find('img').attr('src') != 'xxxx')
      //{
        $(this).closest('tr').find('img').trigger("click");
      //}
    });


});
<table>
<tr>
    <td><img  src="first_img" onclick="DoSomething(this);" style="border:double 2px red;width:100px;"/>img</td>
    <td><input type="checkbox" class="test" /></td>
</tr>
<tr>
    <td><img src="second_img" onclick="DoSomething(this);" style="border:double 2px red;width:100px;"/>img</td>
    <td><input type="checkbox" class="test"/></td>
</tr>