用面向對象的方法寫敲門磚

一道名為"敲門磚"的面試題:
用面向對象的方法寫,點擊列表內,子元素的子標簽, 來刪除子元素

敲門磚

考點:

  • 遞歸(刪除標簽, 需要找到列表的直屬子標簽, 需要通過遞歸層層往上找, parentNode)
  • 冒泡(只需為頂級父元素addEventListener綁定事件, 并通過e.target區分子標簽, 即可實現一次綁定, 多次使用)
  • ES6語法(使用ES6的class 構造方法需要指明constructor函數)
  • 布局(使用網格布局,快速實現內聯元素的兩端對齊, justify-content: span-between)
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>阿里敲門磚</title><style>li{list-style: none;display: flex;justify-content: space-between;align-items: center;background-color: #fdf6e3;border: 1px solid #0c8ac5;height: 100px;padding: 5px;}.del{border:1px solid #323232;color: #c03035;}</style>
</head>
<body><ol class="list"><li><span class="desc">黃河之水</span><span class="del">X</span></li><li><span class="desc">天上來</span><span class="del">X</span></li><li><span class="desc">奔流</span><span class="del">X</span></li><li><span class="desc">到海</span><span class="del">X</span></li><li><span class="desc">不復回</span><span class="del">X</span></li><li><span class="desc">君不見</span><span class="del">X</span></li><li><span class="desc">高唐明鏡</span><span class="del">X</span></li><li><span class="desc">悲白發</span><span class="del">X</span></li></ol><ol class="list"><li><span class="desc">到海</span><span class="del">X</span></li><li><span class="desc">不復回</span><span class="del">X</span></li><li><span class="desc">天上來</span><span class="del">X</span></li><li><span class="desc">奔流</span><span class="del">X</span></li><li><span class="desc">君不見</span><span class="del">X</span></li><li><span class="desc">黃河之水</span><span class="del">X</span></li><li><span class="desc">高唐明鏡</span><span class="del">X</span></li><li><span class="desc">悲白發</span><span class="del">X</span></li></ol><script>class List{constructor(els){// 將this轉換為局部變量self, 個人愛好Python3,這個寫法類似Python3let self = this;// 根據類選擇器,選擇所有符合條件的的清單, 并生成列表let el = Array.from(document.querySelectorAll(els))// 為每個清單綁定事件el.forEach(item => item.addEventListener('click', function(e){// 如果點擊的元素的類名帶有del, 則可以刪除這條標簽if (e.target.className.indexOf('del') > -1){// 移除相應的子元素self.removeDom.call(self, item, e.target)}}))}removeDom(item, tg){let self = this;// 設置移除判定函數let judgeRemoveDom = function(item, tg){// 獲取觸發事件元素的父級元素let parentNode = tg.parentNode;// 如果當前找到的元素的父元素恰好為item, 則可以直接移除if (item === parentNode){item.removeChild(tg);}// 如果當前的父元素不是item, 則繼續往上找else{tg = parentNode;judgeRemoveDom(item, tg);}}judgeRemoveDom(item, tg);}}window.addEventListener('DOMContentLoaded', function(){new List('.list')})</script></body>
</html>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/278327.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/278327.shtml
英文地址,請注明出處:http://en.pswp.cn/news/278327.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

windows10加載動畫_如何關閉動畫并使Windows 10看起來更快

windows10加載動畫Windows 10 fades and window animations are pure eye candy, but waiting for them to load can make your PC seem a bit slow. If you’d like an instant response, you can disable Windows 10’s animations for a snappier desktop experience. Windo…

JData大數據競賽18年賽題-如期而至-用戶購買時間預測

年前做的&#xff0c;也是學習別人的作品作為記錄 一、賽題 表1&#xff1a;sku基本信息表&#xff08;jdata_sku_basic_info&#xff09; 表2&#xff1a;用戶基本信息表&#xff08;jdata_user_basic_info&#xff09; 表3&#xff1a;用戶行為表&#xff08;jdata_user_acti…

LNMP架構(二)

2019獨角獸企業重金招聘Python工程師標準>>> 一 Nginx安裝 1、切換目錄 # cd /usr/local/src 2、下載 # wget http://nginx.org/download/nginx-1.12.1.tar.gz 3、解壓 # tar xzvf nginx-1.12.1.tar.gz 4、切換到nginx目錄下 # cd nginx-1.12.1/ 5、編譯 # ./confi…

edge無法上網dns_如何在Microsoft Edge中通過HTTPS啟用DNS

edge無法上網dnsMicrosoft will one day enable DNS over HTTPS (DoH) for all Windows applications, but you can enable it in the new version of Microsoft Edge today with a hidden flag. DoH will improve your security and privacy online, but it isn’t yet enable…

UIButton小結

前言 本來沒有打算寫這篇文章的, 主要是因為在工作中遇到一些同事再用 有UIButton的時候, 有些很基本的,系統API提供的都不知道, 例如 如何讓UIButton的文字居上,居左, 居右, 居下對其等一些基本點, 為此我特地寫了一下UIButton小結 UIButton回顧 繼承關系 NSObject -> UIRe…

Channel Allocation HDU1373

染色問題&#xff1a;相鄰不能染同一種顏色 最少需要的顏色的數量最大團點的數量 #include<bits/stdc.h> using namespace std;#define N 27int n; int mp[N][N]; int ans; int alt[N][N]; int Max[N];bool dfs(int cur,int tot)//cur是s1集合的個數 {if(0cur){if(tot>…

satis原理淺析

什么是satis 我們一般是從packagist獲取composer包的&#xff0c;但這些都是公開的。那如果我們想創建自己的私有庫呢&#xff0c;比如企業就會有這方便的需要&#xff0c;那我們就可以用satis來創建自己的私有庫。 Satis 是一個靜態的 composer 資源庫生成器。它像是一個超輕量…

HDU - 5686-Problem B (遞推+高精)

度熊面前有一個全是由1構成的字符串&#xff0c;被稱為全1序列。你可以合并任意相鄰的兩個1&#xff0c;從而形成一個新的序列。對于給定的一個全1序列&#xff0c;請計算根據以上方法&#xff0c;可以構成多少種不同的序列。 Input 這里包括多組測試數據&#xff0c;每組測試數…

c#寫字板實現加粗功能_Windows 7中寫字板和繪畫中的新功能

c#寫字板實現加粗功能WordPad and Paint are often overlooked accessories included in all versions of Windows since 95. They are still included in Windows 7 and now have a new look with some enhanced features. Here we will take a look at some of the new impro…

瀏覽器加載靜態資源文件異常解決辦法

2019獨角獸企業重金招聘Python工程師標準>>> 1 使用chrome瀏覽器加載靜態資源文件(css、js等)異常導致cssh和js文件不生效&#xff0c;具體報錯如下: Resource interpreted as Stylesheet but transferred with MIME type text/html 原因應該是網頁文檔類型不一致導…

POJChallengeRound2 Guideposts 【單位根反演】【快速冪】

題目分析&#xff1a; 這題的目標是求$$ \sum_{i \in [0,n),k \mid i} \binom{n}{i}G^i $$ 這個形式很像單位根反演。 單位根反演一般用于求&#xff1a;$ \sum_{i \in [0,n),k \mid i} \binom{n}{i}f(x)^i $ 推理過程略&#xff0c;實際上也就是交換求和符號的事情。 接著就變…

用Emesene替換Windows Live Messenger

Tired of Windows Live Messenger bloat and wishing that there was a simpler and cleaner replacement that would let you use your live.com and hotmail.com accounts? Look no further, now you can have all that messenger goodness with Emesene! 厭倦了Windows Liv…

python爬蟲筆記(七):實戰(三)股票數據定向爬蟲

目標分析及描述 #CrawBaiduStocksA.py import requests from bs4 import BeautifulSoup import traceback import redef getHTMLText(url):try:r requests.get(url)r.raise_for_status()r.encoding r.apparent_encodingreturn r.textexcept:return ""def getStockL…

myeclipse和maven的clean和build

轉&#xff1a; 詳解myeclipse和maven的clean和build 2018年04月20日 11:33:34 群星墜 閱讀數&#xff1a;3529 版權聲明&#xff1a;本文為博主原創文章&#xff0c;未經博主允許不得轉載。 https://blog.csdn.net/qq_35603331/article/details/80002723MyEclipse是一個被廣為…

三星Galaxy S20:如何開啟黑暗模式

Justin Duino賈斯汀杜伊諾(Justin Duino)Samsung was one of the first Android manufacturers to add Dark Mode to its handsets. If you recently purchased a Galaxy S20, S20, or S20 Ultra, enabling the UI feature and setting it up on a schedule is extremely easy.…

nginx和apache限制IP地址訪問的設置方法

一、nginx禁止IP地址訪問1、在nginx配置文件中加入這個&#xff1a;2、重啟nginx服務二、apache禁止IP地址訪問1、更改vhosts.conf文件&#xff1a;NameVirtualHost 192.168.1.191 <VirtualHost 192.168.1.191:99>#DocumentRoot "/usr/local/kk-mail/data/www"…

wordweb在線編輯_使用WordWeb享受按需詞典和詞庫功能

wordweb在線編輯Run across an unusual word or need a synonym for a word quickly? Usually that means opening a browser and doing the appropriate search. Now you can have all that word power goodness at your fingertips with WordWeb. 遇到一個不尋常的詞還是需…

轉://RMAN跨平臺可傳輸表空間和數據庫

參考鏈接&#xff1a; http://blog.itpub.net/23135684/viewspace-776048/ http://blog.sina.com.cn/s/blog_69e7b8d7010164xh.html https://www.2cto.com/database/201311/260446.html 這篇文章翻譯自Oracle 11gR2官方文檔。詳細討論了使用RMAN工具的CONVERT DATAFILE&#xf…

2139=數據結構實驗之圖論五:從起始點到目標點的最短步數(BFS)

1 #include<stdio.h>2 #include<string.h>3 int map[1000][1000],visit[1000];4 int step,mark;5 int queue[1000];//用來儲存已經遍歷了的數據。6 void BFS(int k)7 {8 int i,o0,p0,temp,end0;//temp用來表示當前所在地。o表示下一步從哪個頂點向下出發。9 …

vnc數量限制_通過限制視覺效果在Vista上加速VNC

vnc數量限制This article was written by MetrotekGeek from Metrotek Solutions, a friend of the How-To Geek 本文由Metrotek Solutions的MetrotekGeek撰寫&#xff0c;Metrotek Solutions是How-To Geek的朋友 As a computer field tech, I use the remote desktop program…