2015-12-23 5 views
1

Что-то, что я ожидал, что это будет довольно просто, вызывает у меня много головной боли.Ориентация на определенный элемент, если нет детей

Я пытаюсь проверить, есть ли у какого-либо элемента дочерние элементы, если нет детей, я хотел бы изменить css для следующего элемента <i> для этого конкретного экземпляра.

Мне удалось получить скрипт для удаления всех элементов <i>, но он должен удалить его только из тех случаев, когда детей не найдено.

Обычно я получаю мой jquery, работающий с большим количеством проб/ошибок, но с этим я в темноте, хотя это не может быть очень сложно. Это должно быть что-то довольно простое, я здесь отсутствует.

$(document).ready(function() { 
    if ($('nav ul li').find('ul').length = 0) { 
     $(this).next('i').css('display','none') 
    } 
}); 

HTML

<ul> 
    <li> 
    <input type="checkbox" checked> 
     <a href="#"><i class="fa fa-chevron-down"></i>prime 1</a> 
</li> 
<li> 
    <input type="checkbox" checked> 
     <a href="#"><i class="fa fa-chevron-down"></i>prime 1</a> 
       <ul> 
       <li><a href="#">sub 1</a></li> 
       <li><a href="#">sub 2</a></li> 
       </ul> 
</li> 
+1

Можете ли вы разместить свой HTML-код? –

+0

возможно jsfiddle – Piddien

+0

http://www.w3schools.com/jquery/sel_nthchild.asp использовать это и проверить, что оно что-то возвращает? – Piddien

ответ

4

Поскольку this внутри if блока не относится к li элемента.

Вы можете использовать .not() метод фильтра с: имеет(), чтобы сделать это, как

$(document).ready(function() { 
    $('nav ul li').not(':has(ul)').next('i').css('display', 'none'); 
}); 

Примечание: Я думаю, что есть еще одна проблема, так как, i не может быть родственный элемент li элемента

+0

https://jsfiddle.net/arunpjohny/c2j5cd7L/1/ - 'i' перемещается как ребенок из 'li', а не следующего брата –

+0

Я думаю, что это хороший. Я бы пошел за этим – Piddien

+0

Спасибо большое! отлично работает, на самом деле ошибка на моей стороне, мне нужно было переместить элемент , прежде чем он действительно сработает! – laurens1991

Смежные вопросы