如何根据表格下的另一个元素选择表格行下的元素

时间:2017-02-21 07:39:25

标签: 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 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>
var x = window.content.document.querySelectorAll("input[type='checkbox' img[alt='Delete']");

可悲的是,这是错误的,我认为它正在阅读,因为图像在输入下。

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

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

3 个答案:

答案 0 :(得分:0)

您可以通过在包含a的{​​{1}}元素上放置一个点击处理程序来实现此目的。在那里,您可以使用img关键字引用点击的元素,然后使用this获取父closest(),最后tr获取复选框。

另请注意,您的HTML有几个错误; find()<img>代码是自动关闭的,分别不需要<input></img>代码。试试这个:

</input>
$('table a').click(function(e) {
  e.preventDefault(); // stop the link behaviour
  
  var $tr = $(this).closest('tr');
  var $checkbox = $tr.find(':checkbox');
  
  console.log($checkbox.prop('id'));
});

答案 1 :(得分:0)

这可以解决您的问题 $( “IMG [ALT = '删除']”)。亲本()。父()。父()。发现( “输入”)

答案 2 :(得分:0)

这是jQuery的魔力:

type