получить идентификатор дочернего элемента и сохранить в переменной с помощью jquery? - PullRequest
9 голосов
/ 25 мая 2010

Я в основном пытаюсь сделать именно то, что предлагает субъект, но я получаю "неопределенный" в моем предупреждении, и я не совсем уверен, почему. Я довольно новичок в jquery, поэтому, возможно, у меня неправильный синтаксис, но я не уверен, куда идти дальше. Я опубликую обе мои попытки, которые приведут к сообщению "undefined" в предупреждении ...

//In my first attempt, I'm trying to get the id of the inner a tag
<ul>
                <li id="l1" class="active"><a href="#c1">Samp 1</a></li>
                <li id="l2" class=""><a href="#c2">Samp 2</a></li>
                <li id="l3" class=""><a href="#c3">Samp 3</a></li>
        </ul>

var selected = $(".active).children("a").attr("id");
    alert(selected);

//In my second attempt, I'm trying to get the id of the currently selected li
    var selected = $(".active").attr("id");
    alert(selected);

Ответы [ 4 ]

19 голосов
/ 25 мая 2010
$(".active").children("a").attr("id");

Ваши <a> элементы не имеют id, только href. А использование селектора вместо дочерней функции может облегчить чтение вашего кода.

Вы имеете в виду $(".active > a").attr("href")?


$(".active").attr("id");

jQuery вернет атрибут id первого элемента в коллекции jQuery. У вас есть еще один элемент с классом active?

Предлагаю попробовать $("ul > li.active").attr("id")

1 голос
/ 25 мая 2010

В первой попытке вы получаете <a> в <li> ..., у которого нет идентификатора, вам просто нужно это:

var selected = $(".active").attr("id");
alert(selected);

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

Если вы действительно хотели получить id от элемента <a>, то вам нужно дать им идентификаторы, и ваша первая попытка сработает, вы можете увидеть это здесь .

0 голосов
/ 25 мая 2010

Вы получаете неправильный атрибут (или у вас неправильная разметка). В ваших тегах нет атрибута "id". У вас есть атрибуты "href", поэтому, если вы пытаетесь получить значение "href", вы должны использовать это:

var selected = $(".active).children("a").attr("href");
    alert(selected);

В противном случае, если вам нужно получить идентификатор родителя, вы должны использовать:

var selected = $(".active).attr("id");
    alert(selected);
0 голосов
/ 25 мая 2010

Проблема с якорями заключается в том, что ни один из выбранных якорей на самом деле не имеет идентификатора. Вы имеете в виду .attr("href") случайно?

...