dalekjs点击包含文本的链接但它不起作用

时间:2014-05-15 11:54:15

标签: javascript html css dalekjs

我要做的是从列表中获取一个元素。我想在链接中获取文本,如果它包含正确的文本,请单击链接。这是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标签。

有什么想法吗?

2 个答案:

答案 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选择器中使用它。