前言
阿里巴巴,web前端實習生要在線考試了。確實對于菜鳥的我還是惡補一下知識先。所以百度谷歌了之前阿里巴巴校招的前端筆試題,覺得自己真的被鄙視了,完全做不懂的。啊里巴巴的web前端是在線的筆試,是不是給我們百度谷歌的機會呢?
看見這道題目的時候,覺得確實自己應該去封裝一些你常用的方法,就像jquery那樣。做出一些方法,是實現瀏覽器兼容的,或者是工具類,確實對以后開發還是有利的。
HTML
為了方便說明,我們先寫下HTML
復制代碼 代碼如下:
<p>find me</p>
<div>also find me</div>
復制代碼 代碼如下:
console.log(document.getElementsByClassName("A"));
console.log(document.getElementsByClassName("A B"));
復制代碼 代碼如下:
console.log(document.querySelectorAll (".A"));
console.log(document.querySelectorAll (".B,.A"));
復制代碼 代碼如下:
function StringToObj(string){
var arr = string.split(" ").sort();
var result = {};
for(var i=arr.length-1;arr[i];i--){
result[arr[i]] = true;
}
return result;
}
復制代碼 代碼如下:
function StringToArray(string){
var arr = string.split(" ").sort();
var result = [];
for(var i=arr.length-1;arr[i];i--){
result.push(arr[i]);
}
return result;
}
復制代碼 代碼如下:
function queryNodesByClass(classname){
//思路(1)
var all = document.getElementsByTagName("*"),len = all.length,result = [];
var cname = StringToArray(classname);//思路(4)
for(var i=0;i<len;i++){//遍歷每個節點 對應思路(2)
//對應的是思路(3)也就是StringToObj方法起的作用
var dom_cname = StringToObj(all[i].className),cname_len = cname.length;
for(var j=0;j<cname_len;j++){
if(!dom_cname[cname[j]])
break;
}
if(j == cname_len)
{
result.push(all[i]);
}}
return result;
}
新聞熱點
疑難解答
圖片精選