jquery доступ вложенный div - PullRequest
0 голосов
/ 02 марта 2011

Вот мой вопрос. У меня есть это простое меню.

<div id="menu"> 
    <ul>
        <li> <a id="home" href="home.html"> home </a>           </li>
        <li> <a id="profile" href="profile.html"> profile</a>   </li>       
    <ul>
</div>

и я хочу использовать jQuery для добавления класса ".active" в тег с id = "home".

Я пишу: $('a#home').addClass("active");, но не работает. Как я могу получить доступ к этому вложенному тегу и добавить некоторый класс ??

Любые предложения будут высоко оценены! Thanx

Ответы [ 3 ]

2 голосов
/ 02 марта 2011

Типичная ошибка - поместить ваш код jQuery в заголовок, но не обернуть его в готовое событие.

Убедитесь, что у вас есть:

$(document).ready(function(){
 $('a#home').addClass('active');
});

см. Здесь для живого теста: http://jsfiddle.net/QdVLs/ (помните, jsfiddle автоматически упаковывает любой код в готовый метод, как описано выше)

1 голос
/ 02 марта 2011

Возможно, вам придется использовать его после того, как документ будет готов

$(document).ready(function(){
    $('a#home').addClass("active");
});

Причина может заключаться в том, что когда ваш javascript выполняется, dom может не создать элемент a#home / #home. Этот случай может быть обработан с использованием метода ready , как показано выше.

Вы можете проверить случай, просто добавив оператор alert($('a#home').length) перед вашим кодом. Он должен предупредить 1, иначе вы можете попытаться использовать ready() и повторить попытку, на этот раз поместите alert() в метод ready().

0 голосов
/ 02 марта 2011

$('a#home').addClass("active"); должно работать.

У вас есть другой элемент с таким же идентификатором?

Где вы положили этот код?(Должно выполняться после события готовности документа)

...