javascript中数组合并问题

jsoel 2011-09-08 02:34:12
var checked1 =window.frames["iframe_text"].document.getElementsByName("select1");
var checked2 =window.frames["iframe_text"].document.getElementsByName("select2");
现要将checked1与checked2合并
我用了checked1.concat(checked2),不行,求高手指教
...全文
269 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Exodia 2011-09-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 chenxiling125 的回复:]

引用 3 楼 dxx1988 的回复:
getElementsByName;这东西返回的不是数组,只是类似数组的东西,自然没有concat这个方法,

你要用的话应该Array.prototype.concat.call(checked1, checked2)

不行啊,求具体方法
[/Quote]

测试了下,确实不行,concat处理NodeList对象的时候会把整个对象作为一个元素处理,所以结果是返回 一个数组,每个数组包含一个NodeList对象。

看来LZ只能一个一个遍历过去了。
挨踢直男 2011-09-08
  • 打赏
  • 举报
回复
function convert(nodelist)
{
var arr = [];
for(var i = 0 ; i < nodelist.length ; i ++) arr.push(nodelist[i])
return arr;
}

var checked1 =window.frames["iframe_text"].document.getElementsByName("select1");
var checked2 =window.frames["iframe_text"].document.getElementsByName("select2");
var array = convert(checked1).concat(convert(checked2))
alert(array)
jsoel 2011-09-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dxx1988 的回复:]
getElementsByName;这东西返回的不是数组,只是类似数组的东西,自然没有concat这个方法,

你要用的话应该Array.prototype.concat.call(checked1, checked2)
[/Quote]
不行啊,求具体方法
jsoel 2011-09-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dxx1988 的回复:]
getElementsByName;这东西返回的不是数组,只是类似数组的东西,自然没有concat这个方法,

你要用的话应该Array.prototype.concat.call(checked1, checked2)
[/Quote]
多谢3楼我试试
heych 2011-09-08
  • 打赏
  • 举报
回复
楼上说的有道理
Exodia 2011-09-08
  • 打赏
  • 举报
回复
getElementsByName;这东西返回的不是数组,只是类似数组的东西,自然没有concat这个方法,

你要用的话应该Array.prototype.concat.call(checked1, checked2)
挨踢直男 2011-09-08
  • 打赏
  • 举报
回复
其实他并不是个数组
你如果要放到数组里面
只能自己建个数组
然后循环把里面的元素push进数组里
三石-gary 2011-09-08
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20030214/09/1426872.html 参考

87,990

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧