2010-06-13 69 views
1

內我有一個無序列表,如:我如何得到一個鏈接一個href的值的UL李名單

<ul id="cities"> 
    <li><a href="/london/">London<a></li> 
    <li><a href="/new-york/">New York<a></li> 
    <li><a href="/paris/">Paris<a></li> 
<ul> 

使用jQuery我如何獲得「紐約」 href值?只有錨文本值通過客戶端已知,所以我想找到匹配的錨文本並提取href。

感謝

回答

9

可以使用:contains選擇,就像這樣:

$("#cities li a:contains(New York)").attr('href'); 

或者更多的時間越長,但更準確的(因爲:contains()將匹配「紐約城」爲好),你可以使用該方法.filter()用於精確匹配,像這樣:

$("#cities li a").filter(function() { 
    return $(this).text() === "New York"; 
}).attr('href'); 
+0

@Kk - 你在'document.ready'上運行它,包裝在'$(function(){});'例如?像這樣:http://jsfiddle.net/yadpJ/ – 2010-06-13 15:54:23

1
var href = $('ul#cities li a').filter(function() { 
    return $(this).text() === "New York"; 
}).attr('href'); 
+1

當使用Id的時候,你不需要在元素前加上...... – 2010-06-13 15:21:04

+1

@James - 這通常是真的,但不是100%的時間,一個腳本可能會在十幾頁上使用,如果'#cities'是一個div列出的城市,完全與另一個頁面無關?它*可以*重要的是重點:)不要誤解我的意思,如果你100%確定了ID的使用情況,那麼通過一切手段就可以將它關閉,這是一個更快的選擇器。 – 2010-06-13 15:26:56

+0

@詹姆斯是的,因爲尼克說這是我做的一個理智檢查,我在這裏做例子,因爲它有助於澄清。從來不知道這裏的問題代碼片段有多精確! – Pointy 2010-06-13 15:43:24

相關問題