2014-05-15 64 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

你錯了,上面的代碼爲我工作,給我你的完整代碼。 –

相關問題