Как получить атрибут n-го дочернего элемента с помощью jQuery? - PullRequest
1 голос
/ 16 июня 2011

У меня есть мой HTML-код, например:

<ul id="abc">
<li><a href="http://koolfinance.blogspot.com/2011/06/laxmi-bank.html">Laxmi Bank</a></li>
<li><a href="http://koolfinance.blogspot.com/2011/06/nepal-development-bank.html">Nepal 

Development Bank</a></li>
<li><a href="http://koolfinance.blogspot.com/2011/06/clean-energy-development-

bank.html">Clean Energy Development Bank</a></li>
<li><a href="http://koolfinance.blogspot.com/2011/06/gorkha-development-bank.html">Gorkha 

Development Bank</a></li>
<li><a href="http://koolfinance.blogspot.com/2011/06/bank-of-kathmandu.html">Bank of 

Kathmandu</a></li>
<li><a href="http://koolfinance.blogspot.com/2011/06/nic-bank.html">NIC Bank</a></li>
<li><a href="http://koolfinance.blogspot.com/2011/06/bank-of-asia-nepal-limited.html">Bank 

of Asia Nepal Limited</a></li>
<li><a href="http://koolfinance.blogspot.com/2011/06/nepal-sbi-bank-ltd.html">Nepal SBI 

Bank Ltd.</a></li>

</ul>

Мне нужно найти значение href или целевую страницу тега определенный индекс . Например: если индекс равен 1, он должен вернуть: http://koolfinance.blogspot.com/2011/06/nepal-development-bank.html Я попробовал:

$targetLink = $('#abc a:nth-child(' + myIndex + ')').attr('href');

но его возвращение не определено.

Ответы [ 3 ]

1 голос
/ 16 июня 2011

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

var i = 1;
$(document).ready(function() {
    alert($('#abc li:nth-child('+i+') a').attr('href'));
    alert($('#abc a').eq(i).attr('href'));

});
1 голос
/ 16 июня 2011

Вы выбираете неправильный дочерний элемент:

var targetLink = $('#abc li:nth-child(' + myIndex + ') a').attr('href');

Выберите n-го дочернего элемента li и дочернего элемента a.

вот jsfiddle to demo:

http://jsfiddle.net/G5Cmn/

0 голосов
/ 16 июня 2011

Похоже, вы назвали свой var $myIndex и этот код ссылается на myIndex.Переменные в JS не требуют префикса $, поэтому они не выдают сообщений об ошибках при использовании myIndex.myIndex равно undefined, поэтому ваш селектор оценивается как '#abc a:nth-child(undefined)', который не является допустимым селектором.

edit

Вот пример кода

Еще одна вещь, которую стоит отметить, в массивах JS основаны на нулях, но такие вещи в CSS, как селектор nth-child, основаны на единицах, поэтому для получения второй ссылки вам нужно установить $myIndex до 2, а не 1.

...