日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python学习 Day 046 - DOM 操作 二

發(fā)布時間:2025/3/14 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python学习 Day 046 - DOM 操作 二 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

主要內(nèi)容:

  • 1.DOM的操作(創(chuàng)建,追加,刪除)
  • 2.js中的面向?qū)ο?/strong>
  • 3.定時器

1. DOM的操作(創(chuàng)建,追加,刪除)

(1)DOM節(jié)點的獲取

  • parentNode 獲取父級標(biāo)簽

  • nextElementSibling 獲取下一個兄弟節(jié)點

  • children 獲取所有的子標(biāo)簽

<script>var oP = document.getElementById("wuxia");console.log(oP.parentNode); // 父級div標(biāo)簽下的所有內(nèi)容console.log(oP.nextElementSibling.innerText); //蕭峰console.log(oP.nextSibling.innerText); // IE瀏覽器var a = oP.nextElementSibling|| oP.nextSibling;console.log(a);console.log(oP.parentNode.childen);</script>

(2) DOM的增刪操作

創(chuàng)建 createElement()

//既可以創(chuàng)建已有的標(biāo)簽,還可以創(chuàng)建自定義的標(biāo)簽 var oDiv = document.createElement('div')

追加 appendChild() 父子標(biāo)簽操作

父.appendChild(oDiv);

刪除 removeChild()

父.removeChild(子節(jié)點); 自己.parentNode.removeChild(自己)

插入insertBefore()

父.insertBefore(新的子節(jié)點,要參考的節(jié)點)

利用創(chuàng)建刪除實現(xiàn)隱藏代碼示例

<script>var oBtn = document.querySelector("#btn");var oDel = document.querySelector("#del");var oFather = document.querySelector(".father");var oP = null;var oA = null;oBtn.onclick = function(){//創(chuàng)建 dom p標(biāo)簽oP = document.createElement("p");oA = document.createElement("a");//追加到父級標(biāo)簽中 oFather.appendChild(oP);oFather.insertBefore(oA,oP);//設(shè)置對象屬性值oA.href = 'http://www.baidu.com';//設(shè)置值oA.innerText="百度";oP.innerHTML = "alex";oP.setAttribute("class","active")};oDel.onclick = function(){//如果oP對象存在就結(jié)束程序if (!oP){return;// }else{console.log(oFather);//將增加的p標(biāo)簽移出 oFather.removeChild(oP)}}</script>

(3)?網(wǎng)頁中顯示隱藏性能消耗問題

1.可以通過控制元素的類名或者是style屬性,對元素進行顯示隱藏好處: 可以在網(wǎng)頁中頻繁性的切換,主要控制的是display:none|block;壞處: 文檔初始化會有渲染開銷,但是這點開銷不算什么. 2.通過DOM操作 appendChild和removeChild 對元素顯示隱藏好處:文檔初始化的時候不會產(chǎn)生渲染開銷壞處: 不要在網(wǎng)頁中做頻繁性的切換,會產(chǎn)生性能消耗

(4)使用js模擬hover選擇器

<title>Title</title><style>*{padding: 0;margin: 0;}ul{list-style: none;}ul{width: 600px;height: 80px;line-height: 80px;text-align:center;overflow:hidden;}ul li{float:left;margin: 0 10px;width: 80px;height: 80px;background: darkturquoise;color: #fff;}ul li.active{background: red;}</style> </head> <body> <ul><li>舉</li><li>頭</li><li>望</li><li>明</li><li>月</li> </ul> <script>var lists = document.getElementsByTagName("li");for(var i =0;i<lists.length;i++){lists[i].onclick = function(){//在修改當(dāng)前盒子樣式之前,現(xiàn)將所有盒子的類名置空for(var j=0; j<lists.length;j++){lists[j].className ="";}this.className = "active"; //修改當(dāng)前 鼠標(biāo)進入盒子的樣式 }} </script>

(5)選項卡

<title>Title</title><style>*{padding: 0;margin: 0;}ul{list-style: none;}#tab{width: 480px;margin: 20px auto;border: 1px solid red;}ul{width: 100%;overflow: hidden;}ul li{float: left;width: 160px;height: 60px;line-height: 60px;text-align: center;background-color: #cccccc;}ul li a{text-decoration: none;color:black;}li.active {background-color: darkcyan;}p{display: none;height: 200px;text-align: center;line-height: 200px;background-color: darkgrey;}p.active{display: block;}</style> </head> <body> <div><div id="tab"><ul><li class = "active"><a href="javascript:void(0);">首頁</a></li><li class = "active"><a href="javascript:void(0);">新聞</a></li><li class = "active"><a href="javascript:void(0);">圖片</a></li></ul><p class="active">首頁內(nèi)容</p><p>新聞內(nèi)容</p><p>圖片內(nèi)容</p></div> </div><script>var lists = document.getElementsByTagName("li");var oPs = document.getElementsByTagName("P");// var i;//i=3 變量提升 會導(dǎo)致 變量 是一個全局作用域//var 聲明變量 全局作用域,存在變量提升for(var i= 0; i<lists.length;i++){ //為了給每個dom添加事件lists[i].currentIndex = i;console.dir(lists[i]);lists[i].onclick = function(){for(var j = 0; j<lists.length;j++){lists[j].className = "";oPs[j].className = '';}this.className = "active";oPs[this.currentIndex].className = 'active'}} </script>

注意;變量提升問題

<script>// var a;// //變量提升// console.log(a);//undefined// a = 1;// console.log(a); console.log(a);{var a = 2;}console.log(a);// let聲明的變量 1 塊級作用域 2.不存在變量提升console.log(b); //找不到,不存在 {let b= 3;}console.log(b) </script> 變量提升

通過es6中的let來解決變量提升

<script>var lists = document.getElementsByTagName("li");var oPs = document.getElementsByTagName("P");// var i;//i=3 變量提升 會導(dǎo)致 變量 是一個全局作用域//var 聲明變量 全局作用域,存在變量提升for(let i= 0; i<lists.length;i++){ //為了給每個dom添加事件 console.dir(lists[i]);lists[i].onclick = function(){for(var j = 0; j<lists.length;j++){lists[j].className = "";oPs[j].className = '';}this.className = "active";oPs[i].className = 'active'}} </script>

2.js中的面向?qū)ο?/strong>


(1)使用Object或?qū)ο笞置媪縿?chuàng)建對象

// 構(gòu)造函數(shù)方式創(chuàng)建對象let person = new Object();person.name = 'alex';person.fav = function () {console.log(this);}//字面量方式創(chuàng)建 使用最多var person2 = {name:'wusir',age:19,fav:function () {alert(this.age);}}person2.fav();

(2)工廠模式創(chuàng)建對象

function createPerson(name, age) {let person = new Object();person.name = name;person.age = age;person.fav = function () {console.log(this);}return person;}function createFruit(name, age) {let fruit = new Object();fruit.name = name;fruit.age = age;fruit.fav = function () {console.log(this);}return fruit;}var p1 = createPerson('alex',17);var f1 = createFruit('桃子',1);console.log(p1 instanceof Object);console.log(f1 instanceof Object);

(3)構(gòu)造函數(shù)模式創(chuàng)建對象

function Person(name,age){this.name = name;this.age = age;this.fav = function () {alert(this.name)}}function Fruit(name,age){this.name = name;this.age = age;this.fav = function () {alert(this.name)}} // 創(chuàng)建對象 使用new關(guān)鍵字var p1 = new Person('alex',17);var f1 = new Fruit('桃子',17);console.log(p1 instanceof Object);console.log(f1 instanceof Object);console.log(p1 instanceof Person);console.log(f1 instanceof Fruit);

(4)原型模式創(chuàng)建對象

function Person(name,age){this.name = name;this.age = age; } Person.prototype.fav = function () {console.log(this.name); } let p1 = new Person('alex',16); let p2 = new Person('alex',16);p1.fav();//es6 使用class關(guān)鍵字來創(chuàng)建對象 class Furit{//初始化的構(gòu)造器方法constructor(name='alex',age=16){this.name = name;this.age = age}//對象的單體模式 等價于fav:function(){} fav(){console.log(this.age);} }var f1 = new Furit(); f1.fav(); es6的用法: 1.模板字符串 `` 變量名使用${} 2.class 類的概念 3.箭頭函數(shù) ()=>3 等價于 function(){ return 3}

3.定時器

?

轉(zhuǎn)載于:https://www.cnblogs.com/wcx666/p/9936471.html

總結(jié)

以上是生活随笔為你收集整理的Python学习 Day 046 - DOM 操作 二的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 男人天堂亚洲天堂 | 亚洲女人视频 | 国产爆乳无码一区二区麻豆 | 超碰在线小说 | 亚洲精品日韩在线观看 | 在线精品一区二区三区 | 人妻一区二区三区视频 | 国产午夜视频在线 | 性欧美lx╳lx╳ | 成人深夜福利在线观看 | 91精品国产高清91久久久久久 | 91玉足脚交白嫩脚丫 | 国产精品探花在线观看 | 中文在线最新版天堂 | 少妇被爽到高潮动态图 | sm久久捆绑调教精品一区 | 国产亚洲成av人片在线观看桃 | 亚洲精品国产精品乱码不66 | 亚州av网 | 成人午夜在线播放 | 性感美女在线观看 | 无码人妻aⅴ一区二区三区69岛 | hitomi一区二区三区精品 | 久久国产小视频 | 在线观看日本一区 | 午夜久久网 | 欧美一级做 | 伊人成综合| 公与妇乱理三级xxx www色 | 亚洲色图欧美在线 | 肉肉h | 欧美精品一二区 | 最新色视频 | 日韩 欧美 亚洲 | 亚洲免费一区视频 | 香蕉久久夜色 | 久久久精品久 | 久久婷婷五月国产色综合激情 | 黄色在线观看网站 | 中文字幕1区2区 | 国产精品露脸视频 | 人人爽人人爽人人片 | 一本一道人人妻人人妻αv 九一在线视频 | 中文字幕22页 | 国产九九热 | 我想看一级黄色片 | 深夜成人福利 | 亚洲国产网站 | 亚洲AV无码精品久久一区二区 | 国产成人无码www免费视频播放 | 亚洲4区 | 国产一区二区三区电影在线观看 | 91精品一区 | 日韩午夜在线视频 | 影音先锋在线视频观看 | 亚洲精久| 欧美国产精品一二三 | 青青草自拍偷拍 | 亚洲资源网站 | 中文字幕在线播放一区 | 啊v视频在线 | 中文字幕+乱码+中文字幕一区 | 精品国产九九 | 四虎国产精品免费 | 亚洲人掀裙打屁股网站 | 午夜一区不卡 | 国产欧美日韩一区 | 日韩综合在线观看 | 国产精品500部 | 青青草中文字幕 | 少妇高潮惨叫久久久久久 | 欧美zozo | 天天操女人 | 大黄毛片 | 国产麻豆精品在线观看 | 麻豆精品自拍 | 宇都宫紫苑在线播放 | 国产在线中文字幕 | 日韩欧美精品中文字幕 | 亚洲综合在线五月 | 伊人久久中文 | 九色蝌蚪9l视频蝌蚪9l视频 | 高清无打码 | 少妇一级淫片aaaaaaa | 一区二区三区亚洲 | 九九九在线视频 | 强行挺进白丝老师翘臀网站 | 91蜜臀精品国产自偷在线 | 天天射日日干 | 玖玖爱在线精品视频 | 国产精品五区 | 天天噜 | 午夜8888 | 久在线观看视频 | 少妇熟女一区 | 久久精品免费网站 | 国产freexxxx性播放麻豆 | 国产成人精品一区二区三区无码熬 | www.久久.com |