Я в основном пытаюсь сделать точно, что предлагает предмет, но я становлюсь "неопределенным" на своем предупреждении, и я не совсем уверен почему. Я довольно плохо знаком с jQuery, таким образом, у меня, вероятно, есть синтаксис неправильно, но не уверенный, куда пойти отсюда. Я отправлю обе из своих попыток, которые оба уступают "неопределенный" на предупреждении...
//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);
$(".active").children("a").attr("id");
Ваши элементы не имеют
id
, только href
. А использование селектора вместо функции children может сделать ваш код более удобным для чтения.
Вы имеете в виду $(".active > a").attr("href")
?
$(".active").attr("id");
jQuery вернет атрибут id
первого элемента в коллекции jQuery. Есть ли у вас другой элемент с классом active
?
Я предлагаю вам попробовать $("ul > li.active").attr("id")
Вы получаете неправильный атрибут (или у вас неправильная разметка). В ваших тегах a нет атрибута "id". У вас есть атрибуты "href", поэтому, если вы пытаетесь получить значение "href", вам следует использовать следующее:
var selected = $(".active).children("a").attr("href");
alert(selected);
В противном случае, если вам нужно получить id родителя, вам следует использовать:
var selected = $(".active).attr("id");
alert(selected);
В первой попытке вы получаете внутри
... у которого нет ID, вам нужно только это:
var selected = $(".active").attr("id");
alert(selected);
Поэтому ваша вторая попытка верна, вы можете увидеть это в действии здесь.
Если вы действительно хотели получить id
из элемента, то вам нужно дать им идентификаторы, и ваша первая попытка сработает, вы можете увидеть это здесь.
Проблема с якорями, похоже, в том, что ни у одного из выбранных якорей на самом деле нет идентификатора. Вы случайно не имеете в виду .attr ("href")
?