JQuery / Javascript: Что не так с моим «Если»? - PullRequest
2 голосов
/ 09 октября 2010

У меня есть небольшой кусок моего кода:

if(".level-0.find('.children').length == 1"){
     $(".level-0 > a").attr("href", ""); 
 };

По сути, я говорю: «Если у уровня 0 есть класс .children, не переписывайте HREF в его ссылке!"

Проблема в том, что он ВСЕГДА перезаписывает HREF, как если бы не было условных.Я изменил это "== 1" на "== 10000000" или "20" или "15", и оно ВСЕГДА перезаписывает HREF.Это просто действует так, как будто нет условного утверждения.Я уверен, что это глупый синаткс, но я не вижу этого.

Еще раз, спасибо за помощь n00b в достижении минимальной компетенции.Вот код, который мы хотим изменить, только для контекста.

<li class="level-0 page_item page-item-264"><a href="http://www.domain.com.php5-15.dfw1-1.websitetestlink.com/wordpress/?page_id=264" title="Ca$h Rulez">Ca$h Rulez</a>
<ul class='children'>
    <li class="level-1 page_item page-item-266"><a href="http://www.domain.com.php5-15.dfw1-1.websitetestlink.com/wordpress/?page_id=266" title="1994">1994</a></li>
    <li class="level-1 page_item page-item-268"><a href="http://www.domain.com.php5-15.dfw1-1.websitetestlink.com/wordpress/?page_id=268" title="1995">1995</a></li>
    <li class="level-1 page_item page-item-270"><a href="http://www.domain.com.php5-15.dfw1-1.websitetestlink.com/wordpress/?page_id=270" title="1996">1996</a></li>
    <li class="level-1 page_item page-item-272"><a href="http://www.domain.com.php5-15.dfw1-1.websitetestlink.com/wordpress/?page_id=272" title="1997">1997</a></li>
    <li class="level-1 page_item page-item-274"><a href="http://www.domain.com.php5-15.dfw1-1.websitetestlink.com/wordpress/?page_id=274" title="1998">1998</a></li>
    <li class="level-1 page_item page-item-276"><a href="http://www.domain.com.php5-15.dfw1-1.websitetestlink.com/wordpress/?page_id=276" title="1999">1999</a></li>
    <li class="level-1 page_item page-item-278"><a href="http://www.domain.com.php5-15.dfw1-1.websitetestlink.com/wordpress/?page_id=278" title="2000">2000</a></li>
    <li class="level-1 page_item page-item-280"><a href="http://www.domain.com.php5-15.dfw1-1.websitetestlink.com/wordpress/?page_id=280" title="2001">2001</a></li>
</ul>
</li>

Ответы [ 2 ]

9 голосов
/ 09 октября 2010

Разве это не должно быть

if ($(".level-0").find('.children').length == 1) {
    $(".level-0 > a").attr("href", ""); 
}

Поздно пятница может быть? :)

0 голосов
/ 09 октября 2010

Вы не можете использовать свое состояние там, как и вы, потому что, если у вас больше 1 .level-0 , вы не имеете никакого отношения между .level-0 и его > а
Если ваше условие соответствует только 1 разу, все .level-0> a внутри документа будут доступны.

$('>a',$(".level-0").has('.children'))

... выберет все дочерние элементы <a> из .level-0 , если .level-0 содержит хотя бы 1 .children

...