为了账号安全,请及时绑定邮箱和手机立即绑定

Chrome59到底支不支持forEach函数?

/ 猿问

Chrome59到底支不支持forEach函数?

慕标6419154 2017-06-21 13:49:45

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>无标题文档</title>

</head>    

<body>

<form>

请选择你爱好:<br>

<input type="checkbox" name="hobby" id="hobby1">  音乐

<input type="checkbox" name="hobby" id="hobby2">  登山

<input type="checkbox" name="hobby" id="hobby3">  游泳

<input type="checkbox" name="hobby" id="hobby4">  阅读

<input type="checkbox" name="hobby" id="hobby5">  打球

<input type="checkbox" name="hobby" id="hobby6">  跑步 <br>

<input type="button" value = "全选" onclick = "checkall();">

</form>

<script type="text/javascript">

function checkall(){

var hobby = document.getElementsByTagName("input");

hobby.forEach(function(v){v.checked=true;}); //为什么chrome这句报函数forEach不存在?

[1,2,3].forEach(function(v){alert(v);});//而这句就不报错呢?

}

</script>

</body>

</html>


查看完整描述

31 回答

已采纳
?
李晓健
function checkall(){
    //hobby 并不是一个真正的数组,但他有length属性,所以可以用for循环,forEach是直正数组的方法,所以hobby不能直接用forEach
    var hobby = document.getElementsByTagName("input");
    //把hobby转成一个真正的数组,就可以用forEach了
    var hobbyArr = Array.prototype.slice.call(hobby);
    hobbyArr.forEach(function(v){v.checked=true;}); 
    [1,2,3].forEach(function(v){alert(v);});
}



如果你的问题已解决,请记得采纳答案!

查看完整回答
32 反对 回复 2017-06-21
点击展开后面18
?
小王子抓猫咪

楼上二位回答的挺好,我补充一句,其实没有必要用slice方法转换。完全可以用call语法将数组的forEach运用到hobby这个类数组上。

Array.prototype.forEach.call(hobby,function(element,index){ ... });


查看完整回答
14 反对 回复 2017-07-27
?
橋本奈奈未

那么我也补充一种代码更少的写法吧。

[].forEach.call(hobby,function(v){
    //TODO
})


查看完整回答
11 反对 回复 2017-08-05
点击展开后面5
?
Caballarii

hobby的类型是HTMLCollection,不是js里的Array,两者是有区别的,在Chrome的F12里console.log(hobby)可以看到hobby的类型。

Array.prototype.slice.call可以进行转化,

var hobbyArr=Array.prototype.slice.call(hobby,0);
hobbyArr.forEach......


查看完整回答
8 反对 回复 2017-06-21
?
小熊上大二啦

Array.from(hobby).foreach

查看完整回答
3 反对 回复 2017-11-04
?
安九思米大
console.log("1");


查看完整回答
2 反对 回复 2019-06-03
?
杨少峰

这样吧:

// 模拟Array.forEach

Array.prototype.ForEach = function ( func ) {

    for ( let i = 0; i<this.length; i++ ) {

        func(this[i],i);

    }

}



查看完整回答
3 反对 回复 2017-08-21
?
fdsgasgg
[...hobby].forEach(****)


查看完整回答
2 反对 回复 2017-08-16
?
码男

应该支持吧

查看完整回答
1 反对 回复 2019-04-18
?
Keyro

支不支持自己在chrome59控制台试试就知道了,或者到can i use网站去查询

查看完整回答
2 反对 回复 2018-05-02
?
Developer_Zuck

要用foreach需要引入c标签啊。

查看完整回答
1 反对 回复 2017-10-04
点击展开后面1
?
属于码农的生活

input 里面的value值呢

查看完整回答
1 反对 回复 2017-09-11
?
子非鱼ya

不支持吧

查看完整回答
反对 回复 2020-03-06
?
子非鱼ya

不清楚

查看完整回答
反对 回复 2020-03-06
?
精慕门9417850

我的回答

查看完整回答
反对 回复 2020-02-04
?
精慕门9417850

我要回答

查看完整回答
反对 回复 2020-02-04
?
malisen
init: function() {
            var opts = {
                    theme: 'd2dcms',
                    initialFrameHeight:220,
                    autoHeightEnabled: true,
                    wordCount: false,
                    elementPathEnabled: false,
                    autoFloatEnabled: true,
                    saveInterval: 5000,
                    serverUrl: UPATH + "?from=editor&moduleid=5&width=500",
                    toolbars: [
                        ['insertcode', 'bold', 'italic','simpleupload', 'link', 'insertunorderedlist', 'insertorderedlist', 'blockquote', 'redo', 'undo', 'emotion']
                    ]
                },
                cueditor = UE.getEditor("answer-editor", opts).ready(function() {
                    UE.clearTag(this);
                });



        }


查看完整回答
反对 回复 2019-12-10
?
malisen

ccccccccccccccccccccccccccc

😀























































查看完整回答
反对 回复 2019-12-09
?
qq_安九_0

阿姨洗铁路

查看完整回答
反对 回复 2019-10-20
?
咿呀咿呀哒哒

可以用each

查看完整回答
反对 回复 2019-08-13
首页上一页12下一页尾页

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信