2

我想要做的是从列表中取出一个元素。我想获取链接中的文本,如果它包含正确的文本,请单击该链接。这是html代码:

<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 标签。

有任何想法吗 ?

4

2 回答 2

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(){


    });
  });
于 2014-05-15T13:32:00.807 回答
1

首先,您的 HTML 代码有点扭曲;a<td>必须是元素的子<tr>元素,而不是反过来。我建议阅读有关元素的MDN 文档。<table>

关于你与 Dalek 的问题;Dalek 使用它所执行的浏览器的 CSS 选择器引擎。这将在未来发生变化(被 Sizzle 取代为统一的选择器引擎),但我不知道这个未来究竟会是什么时候。

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

于 2014-05-15T14:22:35.927 回答