使用jquery选择包含(Anchor)标记的td

时间:2012-04-20 08:04:08

标签: jquery html

我有一个HTML代码,如下所示。 我想使用jQuery选择包含a(锚点)的所有td作为直接子节点(Here First TD标记)。

<table>
  <tr>
    <td><a href="abc.aspx">ABC</a></td>
    <td>Second Level<span> >> </span>
        <div>
          <table>
             <tr>
               <td><a href="efg.aspx">EFG</a></td>
             </tr>
          </table>
        </div>
    </td>
 </tr>

7 个答案:

答案 0 :(得分:5)

描述

有很多方法可以做到这一点

您可以使用父css选择器或jQuery的parent()函数。 查看示例和jsFiddle Demonstration

示例

  1. ​$("td > a").parent()
  2. $("td > a:parent")
  3. 更多信息

答案 1 :(得分:4)

这应该可以解决问题:

$("td > a").parent();

答案 2 :(得分:3)

请记住,jQuery具有:has()伪选择器。

$('td:has(> a)')

这将选择所有<td>元素,并立即生成<a>个孩子。

答案 3 :(得分:2)

使用css子选择器选择锚点以检查锚点是否为td的子节点然后调用父节点

$('td > a').parent();

答案 4 :(得分:0)

类似

$('td').filter(function(){
    if($(this).children('a').length > 0){
        return this;
    });

答案 5 :(得分:0)

如果你给你的桌子一个#id,你可以这样做:

$(function(){
    myTds = [];
    $('#mytable td>a').each(function(){
        myTds.push($(this).parent())
    })

//do stuff with your tds
});

答案 6 :(得分:0)

var listOfTD = $("table td > a").parent();

这会让你从桌子上看到所有td都有一个直接的孩子。我的建议是给表写id而不是你应该写的:

var listOfTD = $("#tableid td > a").parent();