如果使用:
document.getElementsByTagName('div') //getElementsByName()同样也是返回nodelist类数组对象
获取到div元素返回来的就是类数组
类数组我们不方便操作,由于它不是数组我们就不能使用数组下的属性去操作它,所以必须转化为数组。
证明:
document.getElementsByTagName('div') instanceof Array //返回false,说明就不是数组
转化成数组使用以下方法:
let arr1 = Array.prototype.slice.call(arrayLike); //最低兼容ie9 let arr2 = [].slice.call(arrayLike); //最低兼容ie9 let arr3 = Array.from(arrayLike); //兼容性不太好
兼容模式:
function realArray(c) { try { return Array.prototype.slice.call(c); } catch (e) { var ret = [], i = 0, len = c.length; for (; i < len; i++) { ret[i] = (c[i]); } return ret; } }