猿问
下载APP

Chrome59到底支不支持forEach函数?

<!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>


慕标6419154
浏览 14781回答 31
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);}); }如果你的问题已解决,请记得采纳答案!

小王子抓猫咪

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

橋本奈奈未

那么我也补充一种代码更少的写法吧。[].forEach.call(hobby,function(v){     //TODO })

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......

小熊上大二啦

Array.from(hobby).foreach

安九思米大

console.log("1");

杨少峰

这样吧: // 模拟Array.forEach Array.prototype.ForEach = function ( func ) {     for ( let i = 0; i<this.length; i++ ) {         func(this[i],i);     } }

fdsgasgg

[...hobby].forEach(****)

精慕门9417850

我要回答

码男

应该支持吧

Keyro

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

Developer_Zuck

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

属于码农的生活

input 里面的value值呢

子非鱼ya

不支持吧

子非鱼ya

不清楚

精慕门9417850

我的回答

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);                 });         }

malisen

ccccccccccccccccccccccccccc?

qq_安九_0

阿姨洗铁路

咿呀咿呀哒哒

可以用each
点击加载更多
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答