我有以下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");
答案 0 :(得分:2)
只需使用each()
汇总它们:
var related_links = [];
$('#related-links ul li a').each(function()
{
related_links.push($(this).attr('href'));
});
答案 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();