2012-02-22 4 views
0

Это простой вопрос jQuery, но я действительно noob с javascript, надеюсь, вы, ребята, можете мне помочь.Установить первый дочерний элемент в li с активным состоянием

Дело просто, в основном мне нужно в <ul> <li> структуру:

  • Установите параметр первого ребенка «всегда» в <li> с активным классом.

Любая помощь?

Спасибо в продвижении.

+1

«первый ребенок» является первым ребенком. Что ты пытаешься сделать? – Blender

+0

, когда вы нажмете один, и получите активный класс, переупорядотите список, чтобы он был на вершине. Active = first-child – andresmijares25

ответ

3

Следующий фрагмент кода будет добавлен active класс к щелкнули элемента списка, изменить порядок списка, так что становится первый ребенок своего родителя, и удалить active класс от своих братьев и сестер:

$("ul").on("click", "li", function() { 
    var $this = $(this); 
    $this.addClass("active") 
     .prependTo($this.parent()) 
     .siblings().removeClass("active"); 
}); 
+0

Привет, Фридрих, это именно то, чего я хочу достичь, однако я пробую этот путь . и я получаю не результаты, любые догадки? – andresmijares25

+0

Он отлично работает для меня в [этой скрипке] (http://jsfiddle.net/BycFP/), но 'on()' является недавним дополнением к jQuery (1.7). Если вы используете более раннюю версию библиотеки, вы должны использовать [delegate()] (http://api.jquery.com/delegate/). –

+0

любые шансы, что он переупорядочит список в самом коде? – andresmijares25

0

ли вы имеете в виду:

 

$("ul li:eq(1)").addClass("active"); 
 
0

Вы пытаетесь получить ссылку на первый li в ul?

var li = $("ul li:first"); 

Вы пытаетесь получить ссылку на li с class="active"?

var li = $("ul li.active"); 

После того, как у вас есть ссылки вам нужно, вы можете задать атрибуты или innerHTML:

$(li).attr("class", "active"); 
$(li).addClass("active"); 
$(li).text("abc"); 
0

Попробуйте

<ul id="special"> 
    <li>Coffee</li> 
    <li>Tea</li> 
    <li>Milk</li> 
</ul> 


$(document).ready(function() 
{ 
$("#special li:eq(0)").addClass("active"); 
}) 

Проверьте это в скрипке http://jsfiddle.net/UsvRs/

0
<ul> 
    <li>list item 1</li> 
    <li>list item 2</li> 
    <li>list item 3</li> 
    <li>list item 4</li> 
    <li>list item 5</li> 
    </ul> 

если выше ваша структура уль лития вы можете использовать ниже сценарий.

$(document).ready(function() 
{ 
$('li').eq(0).addClass("active"); 
}); 
Смежные вопросы