使用jQuery选择包含(锚点)标签的td

4
我有一个如下的HTML代码。 我想使用jQuery选择所有包含a(锚)作为直接子元素的td(这里是第一个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>


你确定那是表格数据吗?如果不是,请使用“li”。 - PeeHaa
顺便提一下,在内部表格后面你忘了一个 </div>(还有 </table> 但我想你已经注意到了 :) )。 - sp00m
@RepWhorinfPeeHaa:我尝试使用嵌套的ul > li,但它们需要特定的!doctype才能在IE8及以上版本中正确显示。 - Dharmesh
@sp00m:谢谢你通知我.. :) - Dharmesh
7个回答

5

4
这应该能解决问题:
$("td > a").parent();

谢谢 sp00m...这比我想象的简单。 - Dharmesh

3

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

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

这将选择所有具有直接<a>子元素的<td>元素。

2
使用 CSS 子选择器选择锚点,以检查该锚点是否是 td 的子元素,然后调用 parent。
$('td > a').parent();

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

这将返回表格中所有具有锚点作为直接子元素的 td。我的建议是给表格一个 id,然后你应该写:

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

0

类似于某些东西

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

0
如果您给表格一个 #id,您可以像这样做:
$(function(){
    myTds = [];
    $('#mytable td>a').each(function(){
        myTds.push($(this).parent())
    })

//do stuff with your tds
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接