jQuery: проверка наличия в списке текста, затем перенаправление, иначе перенаправление здесь - PullRequest
0 голосов
/ 05 октября 2011

Я полный новичок, когда дело доходит до 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>

Если есть ссылка для области практиков, перенаправьте браузер на этот раздел, иначе перенаправьте в раздел «Моя учетная запись».

Это 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');
    };


});

Когда он запускается, он просто перенаправляет меня в Личный кабинет, даже если присутствует Зона Практиков.

Я знаю, что, возможно, я делаю что-то действительно глупое ... Но кто-нибудь может мне помочь и показать мне свет? Буду очень признателен! Спасибо!

Ответы [ 2 ]

1 голос
/ 05 октября 2011

Измените условие в вашем if выражении так:

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

Проблема с вашей попыткой состоит в том, что jQuery(".zoneName a").text() вернет текст всех соответствующих элементов (в вашем случае он возвращаеткак "Моя учетная записьPractioners Area").Эта версия проверяет наличие соответствующих элементов, содержащих строку «Область Practioners».Вот полный код:

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');
    };
});
1 голос
/ 05 октября 2011

Использование:

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 () возвращает текстовое значение всех элементов "a" в ".zoneName"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...