2012-04-05 26 views
0

我想使用jQuery来搜索链接列表并从符合条件的链接中获取文本。下面是一个示例结构:jQuery从链接列表中提取文本

<div class="shortcut_box"> 
    <p>Select a category</p> 
    <ul id="select_nav"> 
    <li><a href="doing-business/directory/#acupuncture">Acupuncture</a></li> 
    <li><a href="doing-business/directory/#advertising">Advertising</a></li> 
    <li><a href="doing-business/directory/#apparel">Clothing and Apparel</a></li> 
    <li><a href="doing-business/directory/#automotive">Automotive</a></li> 
    </ul> 
</div> 
<h3 id="index_heading"></h3>​ 

有一个脚本,它为散列标签后面的字符串(例如“apparel”)设置了一个变量。我想采取该变量,搜索链接以“服装”结尾的项目列表,并将H3标签设置为“服装和服饰”。

该变量设置为鼠标点击,但也通过检查页面加载时的url,所以我不能使用基于鼠标点击的函数。

下面是一些代码,我一直在玩,但不工作:

// manually set url variable for testing 
url = 'apparel'; 
$('#index_heading').html($("#select_nav a[value.match(/url$/)]").text()); 

任何帮助将不胜感激。

回答

0

使用jQuery's Attribute contains选择和你的代码应工作:

url = 'apparel'; 
$('#index_heading').html($("#select_nav a[href*='"+url+"']").text());​​​​​​​​​​​​​​​​ 

演示在这里:http://jsfiddle.net/5WqVz/

+0

刚刚测试过,效果很好。谢谢! – lukemcd 2012-04-05 20:05:16

+0

@lukemcd:你非常欢迎! – 2012-04-05 20:33:07

0

你可能想尝试让你的正则表达式不区分大小写/url$/i

0

试试这个:

// manually set url variable for testing 
url = 'apparel'; 
var wantedId = ""; 

$('a').each(function() { 
    if($(this).attr("href").split("#")[1] == url) { 
     wantedId=$(this).id; 
    } 
});​​ 

$('#index_heading').html($("#" + wantedId).text());