久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - js,有幾行代碼不太明白?

瀏覽:144日期:2023-02-25 18:24:09

問題描述

<!Doctype html><html lang='en> <head><meta http-equiv='Content-Type' content='text/html; charset=utf-8' /><title>控制p屬性</title><script> var changeStyle = function(elem, attr, value) {elem.style[attr] = value }; window.onload = function() {var oBtn = document.getElementsByTagName('input');var op = document.getElementById('p1');var oAtt = ['width', 'height', 'background', 'display', 'display'];var oVal = ['200px', '200px', 'red', 'none', 'block'];for (var i = 0; i < oBtn.length; i++) { oBtn[i].index = i; oBtn[i].onclick = function() {this.index == oBtn.length - 1 && (op.style.cssText = '');changeStyle(op, oAtt[this.index], oVal[this.index]) }} };</script> </head> <body><p id='outer'> <input type='button' value='變寬' /> <input type='button' value='變高' /> <input type='button' value='變色' /> <input type='button' value='隱藏' /> <input type='button' value='重置' /> <p id='p1'></p></p> </body></html>

1.為什么要邏輯運算?2.this.index 與 op.style.cssText之間是怎么樣的關(guān)系,能簡單說一下嗎?

問題解答

回答1:

那句的意思是:如果點擊的按鈕是“重置”,則把 p1 元素的 cssText 清空。也就是重置了 p1 元素的初始狀態(tài)(沒有 style 值)。

&& 運算是從左向右執(zhí)行的,只有當(dāng)左邊表達(dá)式為真時,才執(zhí)行右邊的表達(dá)式。在這里既當(dāng) this.index == oBtn.length - 1,也就是點擊的是最后一個按鈕時,執(zhí)行 op.style.cssText = ''。

這種寫法不值得提倡,閱讀性很差,不是一個好的寫法。正常的寫法是:

if(this.index === oBtn.length - 1) { op.style.cssText = ''}

this.index 就是保存了按鈕的序號,用于判斷點擊的是哪個按鈕。在這里不能直接用 i 來表示,這是 JavaScript 一個著名的缺陷。

回答2:

this.index == oBtn.length - 1 && (op.style.cssText = '');

表示:如果是最后一個btn的話,就執(zhí)行后面的代碼(op.style.cssText = ''),即清除樣式

a==b&&code...

相當(dāng)于if(a==b){code....}

個人不太喜歡這種寫法。

2.this.index 與 op.style.cssText之間是怎么樣的關(guān)系

this.index 是按鈕的序號op.style.cssText = ''表示清除op的樣式。

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 武宁县| 九台市| 天等县| 呼伦贝尔市| 原阳县| 桐城市| 沈丘县| 汝南县| 正定县| 大庆市| 三明市| 玉田县| 信丰县| 台南市| 右玉县| 天镇县| 盱眙县| 周至县| 通海县| 佛山市| 三穗县| 东乌珠穆沁旗| 高清| 龙南县| 瓮安县| 五指山市| 闵行区| 轮台县| 海宁市| 湖北省| 赫章县| 浑源县| 乌什县| 堆龙德庆县| 禹城市| 樟树市| 邵阳县| 宁阳县| 息烽县| 宾阳县| 宜兰市|