如何使用jQuery获取第n个孩子的属性?

问题描述:

我喜欢我的html代码:如何使用jQuery获取第n个孩子的属性?

<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'); 

但其返回不确定。

你选择了错误的子元素:

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

选择里和孩子的那的第n个孩子。

这里有一个的jsfiddle演示:

http://jsfiddle.net/G5Cmn/

+0

以及我发现你得到正确答案第一... thnx ... – KoolKabin 2011-06-16 19:14:14

看起来您已将您的姓名命名为var $myIndex,该代码参考号为myIndex。 JS中的变量不需要$前缀,因此在使用myIndex时它不会给出错误消息。 myIndexundefined因此您的选择器正在评估为'#abc a:nth-child(undefined)'这不是有效的选择器。

编辑

Here is some example code

其他有一点需要注意,在JS数组是从零开始的,但像nth-child选择CSS的东西都是基于一个这样得到的是第二个链接,你会需要将$myIndex设置为2而不是1.

+0

抱歉地说,我的变量myIndex已经得到了完全正确的价值我想......它不是不确定的 – KoolKabin 2011-06-16 19:07:57

您应该在此处了解从零开始的索引。看看我的代码示例以查看差异。这两种选择都可以为你工作,取决于你想要的东西。

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

}); 
+0

遗憾地说,你的小提琴将无法正常工作,如果我们将我更改为5或值> 1 – KoolKabin 2011-06-16 19:06:31

+0

well eq正在工作......但是第n个孩子不是...?我知道为什么? – KoolKabin 2011-06-16 19:07:25

+0

我对这个错字表示歉意。请注意,'a'永远是其父母'li'的第一个孩子。 ''li'另一方面是'#abc'的孩子 – js1568 2011-06-16 19:11:12