2013-03-06 54 views
0

有一个jquery对象 - 表行,我怎么才能知道表行(tr)中的第一个元素是否包含链接?jquery检查表行中第一个td元素是否包含链接

样品HTML:

<tr class=""><td class=""><p><a>some link</a></p></td><td class="pos">AG</td><td class="size">5.1 MB</td><td class="options"><a class="tip" href="/Packages/View/2">View</a></td></tr> 

VS:具有jquery对象

<tr class=""><td class=""><p>no link here</p></td><td class="pos">AG</td><td class="size">5.1 MB</td><td class="options"><a class="tip" href="/Packages/View/2">View</a></td></tr> 

“行” 我想这没有任何的运气:

var firstTdLink = row.find("td:first a") 
if (firstTdLink.length) 
{ 
alert("first td contains link") 
} 
+0

我是gues因为你的代码工作正常,所以你在分配'row'时会出现问题 - 请参阅下面的答案。 – 2013-03-06 07:26:10

回答

3

随着以下:

row.find('td:first-child:has(a)'); 
+0

他们都工作,但你是第一个。谢谢 – ShaneKm 2013-03-06 07:45:46

1

你原来的代码工作正常,我:

<table> 
<tr class=""><td class=""><p><a>some link</a></p></td><td class="pos">AG</td><td class="size">5.1 MB</td><td class="options"><a class="tip" href="/Packages/View/2">View</a></td></tr> 
<tr class=""><td class=""><p>no link here</p></td><td class="pos">AG</td><td class="size">5.1 MB</td><td class="options"><a class="tip" href="/Packages/View/2">View</a></td></tr> 
</table> 

<script> 
console.log($('table tr:first-child').find("td:first a").length) 
</script> 
2

尝试了这一点

if($("tr td:first > a").length>0) 
{ 
    alert("first td contains link") 
} 
0

使用直系后裔选择:

if($('tr td:first > a').length > 0) 
{ 
    alert("first td contains link") 
} 
+0

不应该在这种情况下有所作为,而不仅仅是'$('tr td:first a')' – 2013-03-06 07:33:08

0

我想是这样的:

var firstTdLink = $("td:first").find('a'); 
if (firstTdLink.length > 0){ 
    alert("first td contains link") 
} 
+0

这相当于OP的代码,除非它不限制它到一个特定的行......也是这样可以更简洁:'$(“td:first a”)'但是无论如何,我认为从一个特定的'row'变量开始的想法很重要...... – 2013-03-06 07:31:53

相关问题