2013-11-21 2 views
0

Мы обновляем нашу анкеты клиента, которая настроена так, чтобы они могли возвращать и обновлять или редактировать свои ответы. Основной HTML для каждого вопроса (пункт) ниже:Ориентация на css внешнего родителя с jQuery

<div class="item"> 
    <span class="blue">The question ?</span> 
    <div class="answer"> 
    Previous Answer <a href="" class="editlink">edit</a> 
    </div> <!-- end div answer --> 
    <div class="question"> 
    <textarea name="item-name" class="w90">Previous Answer or empty</textarea> 
    </div> <!-- end div question --> 
</div> <!-- end div item --> 

При загрузке из базы данных, если есть предыдущий ответ, то ответ ДИВ покажет и вопрос DIV будет скрыт & заселен с предыдущим ответом , Если клиент нажимает ссылку на редактирование, тогда ответ div должен скрываться, а div div вопроса.

Если предыдущего ответа не было, тогда вопрос div отобразится, и пустой ответ div будет скрыт.

Мои мысли состоят в том, чтобы создать два класса предметов, .item-ответил & .item-not-ответил, чтобы отразить два состояния, которые могут быть ответом и вопросом. И затем используйте эти классы, когда страница сначала создается PHP.

Но я пытаюсь выяснить, как использовать автоматические материалы jQuery, чтобы нажимать на ссылку редактирования, чтобы изменить css внешнего родителя (помечен как «элемент» в моем html выше).

ответ

1

Вы находитесь за исходным методом jQuery. (http://api.jquery.com/parent/)

попробовать что-то вроде этого:

<a href="#" onclick="$(this).parent().addClass('item-not-answered');" class="editlink">edit</a> 
+0

Это похоже на работу для непосредственного родителя, который был бы окружающий ДИВ (ответ), но я пытаюсь настроить таргетинг на следующий более высокий родитель, который является external div (item), чтобы я мог использовать оба div внутри. – Tom

+0

ОК, я пробовал $ (this) .parent(). Parent(). AddClass .... и, похоже, это трюк ... но это лучший способ сделать это? – Tom

+2

Вы можете использовать 'parents(). Eq()' (с ** s **, см. [Parent()] (http://api.jquery.com/parents/)), чтобы указать, какой элемент предка. Попробуйте '$ (this) .parents(). Eq (1) .addClass ('item-not-answer');' - дед. –

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