2014-05-15 57 views
2

我想要做的是从列表中获取一个元素。我想在链接中输入文字,如果链接中包含正确的文字,请点击该链接。这是HTML代码:dalekjs点击一个包含文本但链接不起作用的链接

<table> 
<td> 
    <tr><a href='...'>I need help</a></tr> 
    <tr><a href='...'>Oh hello</a></tr> 
    <tr><a href='...'>Lorem ipsum</a></tr> 
</td> 
</table> 

我尝试这样做:

.click('table > td > tr > a:contains("I need help")') 

但由于某种原因,这是行不通的。

我不能使用此:

.click('table > td > tr:nth-child(1) > a) 

,因为随着网站获得更大会有增加了更多的TR标记。

任何想法?

回答

1

首先,你的HTML代码是有点扭曲;一个<td>必须是一个<tr>元素的孩子,而不是周围的方式。我建议阅读关于<table>元素的MDN Docs

关于你与Dalek的问题; Dalek使用它执行的浏览器的CSS选择器引擎。这将在未来发生变化(由Sizzle作为一个统一的选择器引擎取代),但是当这个未来恰好会发生时,我没有估计。

关于:contains()伪选择器 - 据我所知,这已消失。目前的CSS3规范已经删除它&因此你不能在你的Dalek选择器中使用它。

+1

感谢您的帮助我已经找到了关于选择器的信息。不管怎么说,还是要谢谢你 –

2

你没有创建表正常,它应该是:

<table> 
    <tr><td><a href='...'>I need help</a></td></tr> 
    <tr><td><a href='...'>Oh hello</a></td></tr> 
    <tr><td><a href='...'>Lorem ipsum</a></td></tr> 
</table> 

和这个js代码工作正常

$(document).ready(function(){ 
    $("table tr td a:contains('I need help')").click(function(){ 


    }); 
    }); 
+1

它仍然没有为我工作,它不会正常执行。 –

+0

你错了,上面的代码为我工作,给我你的完整代码。 –

相关问题