使用jQuery find()获取链接的href值

时间:2014-09-02 16:04:30

标签: javascript jquery html

我有以下HTML结构:

...
...
    <div id="related-links">
        <ul>
            <li class="first"><a href="some-link"></a></li>
            <li><a href="some-link"><a href="some-link"></a></li>
            <li><a href="some-link"><a href="some-link"></a></li>
            <li><a href="some-link"><a href="some-link"></a></li>
            <li><a href="some-link"><a href="some-link"></a></li>
        </ul>
    </div>
...
...

如何在javascript中获取所有href元素的li值?

我目前正在尝试此操作,但总有可能不会有五个li

var related_links_body = $('div.related-links ul');
var related_links = [];
related_links[0] = related_links_body.find("li.first a").attr("href");
related_links[1] = related_links_body.find("li.first").next().find("a").attr("href");
related_links[2] = related_links_body.find("li.first").next().next().find("a").attr("href");
related_links[3] = related_links_body.find("li.first").next().next().next().find("a").attr("href");
related_links[4] = related_links_body.find("li.first").next().next().next().next().find("a").attr("href");

2 个答案:

答案 0 :(得分:2)

只需使用each()汇总它们:

var related_links = [];

$('#related-links ul li a').each(function()
{
     related_links.push($(this).attr('href'));
});

请参阅Documentation

答案 1 :(得分:0)

首先你的选择器是错误的,你使用的是类选择器,而不是id选择器

$('div.related-links ul')

需要

$('div#related-links ul')

$('#related-links ul')


您可以使用jQuery map将hrefs转换为数组。

var related_links_body = $('#related-links ul');
var anchors = related_links_body.find("li a");
var related_links = anchors.map( function() { return this.href; } ).get();

JSFiddle