如何在document.links数组上使用数组方法?

时间:2014-04-24 18:20:41

标签: javascript arrays

为什么pop()方法不起作用? 我有这个错误

Uncaught TypeError: undefined is not a function

如何在文档链接上使用数组方法来删除或添加元素? 感谢

<!doctype html>
<html>
<head>
<meta charset="UTF-8">  
</head>
<body>
<div>
<nav class="mainNav" id="mainNav">
<ul>
<li><a href="http://en.wikipedia.org/wiki/New-age_music" title="New Age"  target="_blank" > New Age </a> 
<ul class=subNav>
<li><a href="DevaPremal.html" title="Deva Premal" target="_blank"> Deva Premal</a></li>
<li><a href="http://www.karuneshmusic.com/" title="Karunesh" target="_blank">Karunesh</a></li>
<li><a href="http://www.luboistok.ru/" title="Oles" target="_blank">Oles</a></li>
</ul>
</li>

<script type="text/javascript">
function addLinks()
{
    var allLinksArray = document.links;
    var singersArray = allLinksArray.pop();
    console.log(allLinksArray.length);
    console.log(singersArray.length);
}

addLinks();
</script>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

那是因为document.links返回HTMLCollection而不是简单的数组 所以你需要将HTMLCollection转换为真实数组。

here描述了如何执行此操作的示例。

你需要:

var allLinksArray = Array.prototype.slice.call( document.links );

一切为您服务 - 甚至在jsfiddle上工作代码;)