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

发布于 2024-11-15 22:55:45 字数 1525 浏览 4 评论 0原文

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

但它返回未定义。

I have my html code like:

<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>

I need to find the href value or a tag's target page of specific index. E.g.: if the index is 1, it should return: http://koolfinance.blogspot.com/2011/06/nepal-development-bank.html
I tried:

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

but its returning undefined.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

云裳 2024-11-22 22:55:45

您选择了错误的子元素:

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

选择 li 的第 n 个子元素及其子元素 a。

这是一个 jsfiddle 演示:

http://jsfiddle.net/G5Cmn/

You're selecting the wrong child element:

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

Select the nth-child of the li and the child a of that.

here's a jsfiddle to demo:

http://jsfiddle.net/G5Cmn/

慕烟庭风 2024-11-22 22:55:45

您应该注意这里的从零开始的索引。看一下我的代码示例,看看有什么不同。这两种选择都适合您,具体取决于您的需求。

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

});

You should be aware of the zero-based index here. Take a look at my code sample to see the difference. Both options could work for you depending on what you want.

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

});
独自唱情﹋歌 2024-11-22 22:55:45

看起来您将变量命名为 $myIndex 并且该代码引用了 myIndex。 JS 中的变量不需要 $ 前缀,因此当您使用 myIndex 时,它不会给出错误消息。 myIndexundefined,因此您的选择器计算结果为 '#abc a:nth-child(undefined)',这不是有效的选择器。

编辑

这里是一些示例代码

另一件需要注意的事情是,在 JS 数组中为零-based 但 CSS 中的内容(例如 nth-child 选择器)是基于 1 的,因此要获取第二个链接,您需要将 $myIndex 设置为 2,而不是 1。

Looks like you named your var $myIndex and that code references myIndex. Variables in JS don't require a $ prefix so it's not giving you error messages when you use myIndex. myIndex is undefined so your selector is evaluating to '#abc a:nth-child(undefined)' which is not a valid selector.

edit

Here is some example code

One other thing to note, in JS arrays are zero-based but the things in CSS like the nth-child selector are one-based so to get that second link you would need to set $myIndex to 2, not 1.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文