Jquery包含列表

时间:2012-07-12 16:13:55

标签: jquery django

我正在使用Jquery来选择包含某个href链接的列表的单个成员。

到目前为止,这是我的代码:

<script type="text/javascript" 
 src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
    var page = jQuery(location).attr('href'); 
    if(page $= "home"){
        $("'li':contains('index')").addClass("active")};
    if(page $= "features"){
        $("'li':contains('features')").addClass("active")};
    if(page $= "people"){
        $("'li':contains('people')").addClass("active") };
    if(page $= "accounts"){
        $("'li':contains('accounts')").addClass("active")};
    if(page $= "blog"){
        $("'li':contains('blog')").addClass("active")};  
    if(page $= "faq"){
        $("'li':contains('faq')").addClass("active")};                      
});
</script>

HTML代码如下所示:

<ul id="navigation">
  <li><a href="/index" title="Home">Home</a></li>
  <li><a href="/features" title="Features">Features</a></li>
  <li><a href="/people" title="People">People</a></li>
  <li><a href="/accounts" title="account">accounts</a></li>
  <li><a href="/blog" title="Blog">Blog</a></li>
  <li><a href="/faq" title="FAQ">FAQ</a></li>
</ul>

我似乎无法让这个工作?我是否正确使用了包含功能?

1 个答案:

答案 0 :(得分:2)

:contains搜索元素的innerText。您想要:has,它会扫描innerHTML

此外,对于href属性,您需要使用attribute selector[href="index"]

$("li:has(a[href*='index'])")

这将选择包含<li>标记的<a>,其中href包含"index"

更新:

if(page $= "home")

你实际上无法做到这一点。如果要查看字符串是否以另一个字符串结尾,请使用正则表达式(或子字符串)。

jQuery(location).attr('href'); 

为什么要使用jQuery呢?只做location.href。更好的是,使用location.pathname。然后,您可能会丢失if块,只需执行此操作:

var page = location.pathname;
$("li:has(a[href*='"+page+"'])").addClass("active");

(您可能需要page.replace('home', 'index')