表白:黑白圣堂血天使,天劍鬼刀阿修羅。 講解對(duì)象:/Array.prototype.filter用在nodelist為什么會(huì)出現(xiàn)報(bào)錯(cuò) 作者:融水公子 rsgz === Array.prototype.filter用在nodelist為什么會(huì)出現(xiàn)報(bào)錯(cuò)
這是一個(gè)很有趣的問(wèn)題,Array.prototype.filter是數(shù)組的原型方法,document.querySelectorAll('a')返回的是一個(gè)NodeList對(duì)象,不是一個(gè)數(shù)組。因此,
你無(wú)法直接在NodeList上使用數(shù)組的原型方法
思路很簡(jiǎn)單如果我們也想在nodelist對(duì)象使用這個(gè)原型方法只需要數(shù)據(jù)轉(zhuǎn)換就可以了 方式1
var links = document.querySelectorAll('a');
var element = Array.from(links).filter(function(link) {
return link.textContent.includes('運(yùn)輸設(shè)置');
})[0];
console.log(element); 
方式2var links = document.querySelectorAll('a');
var element = Array.prototype.slice.call(links).filter(function(link) {
return link.textContent.includes('運(yùn)輸設(shè)置');
})[0];
console.log(element); 
方式3
var links = document.querySelectorAll('a');
var element = Array.prototype.filter.call(links, function(link) {
return link.textContent.includes('運(yùn)輸設(shè)置');
})[0];
element 

=== 公眾號(hào):不浪仙人 謝謝大家的支持!可以點(diǎn)擊我的頭像,進(jìn)入我的空間瀏覽更多文章呢。建議大家360doc[www.hbhlny.cn]注冊(cè)一個(gè)賬號(hào)登錄,里面真的有很多優(yōu)秀的文章,歡迎大家的到來(lái)。 ---
|