我要做的是从列表中获取一个元素。我想在链接中获取文本,如果它包含正确的文本,请单击链接。这是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标签。
有什么想法吗?
答案 0 :(得分: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 :(得分:1)
首先,您的HTML代码有点扭曲; <td>
必须是<tr>
元素的子元素,而不是周围的方式。我建议您阅读有关<table>
元素的MDN Docs。
关于你与Dalek的问题; Dalek使用它执行的浏览器的CSS选择器引擎。这将在未来发生变化(由Sizzle替换为统一的选择器引擎),但我没有估计这个未来究竟是什么。
关于:contains()伪选择器 - 据我所知,这已经消失了。目前的CSS3规范已删除它&amp;因此,你不能在你的Dalek选择器中使用它。