Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何基于表行下的另一个元素选择表行下的元素_Javascript - Fatal编程技术网

Javascript 如何基于表行下的另一个元素选择表行下的元素

Javascript 如何基于表行下的另一个元素选择表行下的元素,javascript,Javascript,我正在尝试根据delete.jpg的链接选择复选框。我试过这个: <table> <tr class="odd"> <td><input id="cbox1" type="checkbox"></input></td> <td>some info here</td> <td>some info here</td> <td>some

我正在尝试根据delete.jpg的链接选择复选框。我试过这个:

<table>
  <tr class="odd">
    <td><input id="cbox1" type="checkbox"></input></td>
    <td>some info here</td>
    <td>some info here</td>
    <td>some info here</td>
    <td><a href="www.example.com"><img src="delete.jpg" alt="Delete"></img></a></td>
  </tr>
  <tr class="even">
    <td><input id="cbox2" type="checkbox"></input></td>
    <td>some info here</td>
    <td>some info here</td>
    <td>some info here</td>
    <td><a href="www.example.com"><img src="delete.jpg" alt="Delete"></img></a></td>
  </tr>
</table>
可悲的是,这是错误的,我认为这是阅读的图像是在输入

我需要的是确定复选框的ID,如果该行有delete.jpg图像。请记住,img包含在链接中


任何方法都会有帮助,但我需要在javascript上使用它。jQuery也是一种可能性。提前谢谢

您可以通过在包装
img
a
元素上放置一个单击处理程序来实现这一点。从那里,您可以使用
this
关键字引用单击的元素,然后使用
closest()
获取父级
tr
,最后使用
find()
获取复选框

还要注意,您的HTML有几个错误<代码> 这里有一些信息 这里有一些信息 这里有一些信息 这里有一些信息 这里有一些信息 这里有一些信息
这应该可以解决您的问题
$(“img[alt='Delete'])。parent().parent().parent().find(“input”)

以下是jQuery的神奇之处:

    $('img[src="delete.jpg"]').each(function(){
      var e = $(this);
      var id = e.closest('tr').find('input').attr('id');
      console.log( e, id );
    });

// To store the id in image element:
    window.id_list = [];

    $('img[src="delete.jpg"]').each(function(){
      var e = $(this); // image element
      var id = e.closest('tr').find('input').attr('id');
      e.data('myid', id);
      id_list.push(id);
    });

    // to access
    $('img[src="delete.jpg"]:first').data('id');
    // or
    console.log(id_list);

有多个
复选框
您需要什么?删除了OP不想要答案的标记,为什么jquery很容易做到这一点?:)谢谢但是在纯javascript中有答案吗?当然,但是为什么要用jQuery标记这个问题?很抱歉问了一个愚蠢的问题,但是如何在函数之外使用变量“id”?