2013-06-19 2 views
1

Я пытаюсь целевым элемент привязки в предыдущем делении на основе нажатия кнопки радио в последующем разделении:Как настроить целевой элемент в предыдущем разделе через jQuery?

<li> 
    <div class="list-item-name"> 
     <a href="#level-1" data-folder-child="26" data-folder-parent="0">Just a Folder</a> 
    </div> 
    <div class="list-item-radio"> 
     <input type="radio" value="26" name="folders[]" id="list-item-radio-26"> 
    </div> 
</li> 

Я попал в «список-пункт-имя» класс деления но я не могу получить на якоре:

$(".folders-hierarchy").delegate("input[type=radio]", "click", function() { 
    if (obj_radio.previous) { 
     $("#" + obj_radio.previous).closest('li div.list-item-name a').css({ 'color': 'blue' }); 
     $("#" + obj_radio.previous).closest('li').css({ 'background-color': 'white' }); 
    } 
    $(this).closest('li div.list-item-name a').css({ 'color': 'blue' }); 
    $(this).closest('li').css({ 'background-color': '#ffe7e7' }); 
    obj_radio.previous = $(this).attr('id'); 
}); 

Здесь я поменяв стили различных элементов, отражающего выбор делается, восстанавливая прежние выборы в их оригинальные стили.

К сожалению, я не могу показать весь код, потому что он привязан к данным базы данных, который я не могу уменьшить.

+1

$ (это) .parent ('ли'). Найти ('а') –

+0

близко, но ты заставил меня задуматься. Это: .closest ('li'). Find ('a') –

+1

$ ('. List-item-radio'). Prev(). Find ('a'); – karthi

ответ

3

Когда вы сделаете это -

$(this).closest('li div.list-item-name a') 

JQuery пытается найти ближайший a среди родителей, которые не доступны в вашем коде -

вы необходимо сделать это вместо

$(this).closest('li').find('div.list-item-name a'); 

это будет найти ближайший li, а затем искать a внутри этого li

Demo, чтобы продемонстрировать это --->http://jsfiddle.net/jJWs2/

0

попробовать это:

$(this).closest('li').find('div.list-item-name a'); 
+0

Не существует ближайшего элемента, соответствующего этому селектору, поэтому это не сработает. –

2

Я хотел бы получить якорь в элементе предыдущий как Fiddle.

$(this).parent().prev().find('a'); 
Смежные вопросы