jQuery:检查列表是否包含文本,然后重定向,否则重定向到这里

时间:2011-10-05 12:13:24

标签: jquery redirect if-statement

关于jQuery,我是一个完全新手,所以请耐心等待......

我有这个HTML

<ul class="zoneSubscriptions">
  <li>
    <ul>
      <li class="zoneName"><a href="/Default.aspx?PageID=8267303">My Account</a></li>
      <li>Never</li>
    </ul>
  </li>
  <li>
    <ul>
      <li class="zoneName"><a href="/Default.aspx?PageID=8269026">Practitioners Area</a></li>
      <li>Never</li>
    </ul>
  </li>
</ul>

如果存在Practitioners Area的链接,请将浏览器重定向到该href,否则,重定向到“我的帐户”部分。

这是我的jQuery ......

jQuery.noConflict();
jQuery(document).ready(function() {

    if(jQuery(".zoneName a").text() == 'Practitioners Area'){
        document.location.href = $(this).attr('href');

    }else{
        document.location.href = jQuery('.zoneName:first a').attr('href');
    };


});

当它运行时,它只是将我重定向到我的帐户,即使Practioners Area存在。

我知道我可能正在做一些非常愚蠢的事......但任何人都可以帮助我并向我展示光明吗?非常感谢!谢谢!

2 个答案:

答案 0 :(得分:1)

使用:

jQuery(document).ready(function() {
    var isPractitionersAreaPresent=false;
    jQuery(".zoneName a").text(function(i,v){
        if(v == 'Practitioners Area'){
            isPractitionersAreaPresent=true;
        }
    });
    if(isPractitionersAreaPresent){
        document.location.href = elem.attr('href');

    }else{
        document.location.href = jQuery('.zoneName:first a').attr('href');
    }
});

jQuery(“。zoneName a”)。text()返回“.zoneName”中所有“a”元素的文本值

答案 1 :(得分:1)

if语句中的条件更改为:

$(".zoneName a:contains('Practitioners Area')").length

您尝试的问题是jQuery(".zoneName a").text()将返回所有匹配元素的文本(在您的情况下,它会返回类似“我的AccountPractioners区域”的内容)。此版本检查是否存在包含字符串“Practioners Area”的任何匹配元素。这是完整的代码:

jQuery(document).ready(function() {

    if($(".zoneName a:contains('Practitioners Area')").length) {
        document.location.href = $(this).attr('href');

    }else{
        document.location.href = jQuery('.zoneName:first a').attr('href');
    };
});