如何檢查 DOM 元素是否有類別

你如何檢查你所擁有的特定 DOM 元素是否有指定的類別? 使用 classList 物件提供的 contains 方法,寫法如下: element.classList.contains('myclass') 從技術上來說,classList 是一個符合 DOMTokenList 介面的物件,這意味著它實作了相關的方法與屬性。 你可以在 DOMTokenList MDN 頁面 上查看詳細的資訊。

如何檢查 JavaScript 物件

瞭解 JavaScript 提供的檢查變數內容的方法(或其他類型的值)。 JavaScript 提供了許多方法來檢查變數的內容。特別是,讓我們找出如何輸出物件的內容。 控制台 API console.log console.dir JSON.stringify() toSource() 使用迴圈迭代屬性 如何在 Node.js 中檢查 假設我們有這個 car 物件,但是我們不知道它的內容,並且我們想要檢查它: const car = { color: 'black', manufacturer: 'Ford', model: 'Fiesta' } 控制台 API 使用控制台 API,您可以將任何物件輸出到控制台。這將適用於任何瀏覽器。 console.log console.log(car) console.dir console.dir(car) 與以下方式效果相同: console.log('%O', car) JSON.stringify() 這將以字串形式輸出物件: JSON.stringify(car) 透過增加這些參數: JSON.stringify(car, null, 2) 您可以使輸出更好閱讀。最後一個數字代表縮排的空格數: JSON.stringify() 的優點是可以在控制台之外運作,您可以在螢幕上輸出物件。或者,您可以將它與控制台 API 結合起來,在控制台中輸出: console.log(JSON.stringify(car, null, 2)) toSource() 類似於 JSON.stringify,toSource() 是大多數類型的方法,僅在 Firefox(以及基於 Firefox 的瀏覽器)中可用: 值得一提的是,由於它不是標準,只在 Firefox 上實現,所以 JSON.stringify 是一個更好的解決方案。 使用迴圈迭代屬性 for...in 迴圈很方便,它會列印物件的屬性:...

如何檢查 JavaScript 物件屬性是否為未定義

在 JavaScript 程式中,要檢查物件屬性是否為未定義的正確方法是使用 typeof 運算子。以下是你可以使用它的簡單說明。 在 JavaScript 程式中,要檢查物件屬性是否為未定義的正確方法是使用 typeof 運算子。 typeof 會返回描述運算元類型的字串。它不需要使用括號,只需傳入你想檢查的任何值: const list = [] const count = 2 typeof list //"object" typeof count //"number" typeof "test" //"string" typeof color //"undefined" 如果值未定義,typeof 會返回一個 ‘undefined’ 的字串。 現在假設你有一個 car 物件,只有一個屬性: const car = { model: 'Fiesta' } 這是如何檢查該物件中是否定義了 color 屬性的方法: if (typeof car.color === 'undefined') { // color is undefined }

如何檢查 JavaScript 值是否為陣列?

學習如何使用 Array.isArray() 方法來判斷 JavaScript 值是否為陣列。 有時候,當你在函式中傳遞一個物件,你需要檢查它是否為陣列。 如果它是陣列,你可能會執行某些操作,而如果它不是陣列,你可能會執行其他操作。 要如何判斷一個物件是否為陣列呢? 你可以使用 Array 內建物件提供的 isArray() 靜態方法,這個方法在 ECMAScript 5 中被引入: const list = [1, 2, 3] Array.isArray(list) //true

如何檢查 JavaScript 陣列是否包含特定值

給定一個 JavaScript 陣列,你要如何檢查其中是否包含特定項目? 使用陣列實例的 includes() 方法。 例如: ['red', 'green'].includes('red') // true ✅ ['red', 'green'].includes('yellow') // false ❌

如何檢查一個元素是否是另一個元素的子元素

我有需要在 click 事件中檢查一個元素是否是特定父元素的子元素。 我給這個父元素分配了一個 id,然後我使用以下迴圈檢查被點擊的元素是否屬於其子元素: const isDescendant = (el, parentId) => { let isChild = false if (el.id === parentId) { // 是否為元素本身? isChild = true } while (el = el.parentNode) { if (el.id == parentId) { isChild = true } } return isChild } document.addEventListener('click', event => { const parentId = 'mycontainer' if (isDescendant(event.target, parentId)) { // 是子元素,在這裡處理這種情況 } else { // 不是子元素,在這裡處理這種情況 } }) 在 while 迴圈中,我們使用賦值運算符 = 進行迭代,直到沒有父節點為止,此時 el....

如何檢查目前使用的 Python 版本

您可以在程式運行時檢查程式所使用的 Python 版本。 首先,您需要從標準函式庫中導入 sys 模組: import sys 然後檢查 sys.version_info 屬性的內容。 該屬性會以元組形式返回 Python 版本。 >>> sys.version_info sys.version_info(major=3, minor=9, micro=0, releaselevel='final', serial=0) Python 允許您比較元組,因此您可以檢查當前 Python 版本是否為 3.7.0 或更高版本: sys.version_info >= (3, 7) 然後,您可以將此檢查添加到條件語句中,以在 Python 版本過舊時退出程式: if sys.version_info < (3, 7): print('請將您的 Python 版本升級到 3.7.0 或更高版本') sys.exit()

如何獲取URL的片段部分

了解如何獲取URL的片段部分的值 我曾經有需要以程式的方式訪問URL的片段部分,也就是#井號符號後面的部分。 例如,如果URL是index.html#second,我想要取回second。 以下是我如何實現的: const fragment = window.location.hash

如何獲取文件的詳細信息

給定文件的路徑,可以使用os模組提供的幾種方法來獲取有關該文件的更多信息: os.path.getsize() 返回文件的大小 os.path.getmtime() 返回文件的最後修改日期 os.path.getctime() 返回文件的創建日期(在像 macOS 這樣的 Unix 系統中等於最後修改日期) 這是一個例子: import os filename = '/Users/flavio/test.txt' print(os.path.getsize(filename)) print(os.path.getmtime(filename)) print(os.path.getctime(filename)) os.stat()以簡潔的方式返回您需要的所有信息: import os filename = '/Users/flavio/test.txt' print(os.stat(filename)) 它返回一個os.stat_result對象: os.stat\_result(st\_mode=33252, st\_ino=34409711, st\_dev=16777224, st\_nlink=1, st\_uid=501, st\_gid=20, st\_size=189, st\_atime=1605428774, st\_mtime=1605428773, st\_ctime=1605428773) 我們在這裡有很多信息,其中包括: st_mode文件類型和權限 st_ino inode編號 st_dev 設備ID st_uid 文件所有者ID st_gid 文件組ID st_size 文件大小 您可以訪問個別屬性: import os filename = '/Users/flavio/test.txt' stats = os.stat(filename) print(stats.st\_size) print(stats.st\_mtime)

如何獲取靜態網站的實際訪問量

對於一個靜態網站,你如何得到真實的訪問人數? 更新:所有主要的平台現在都有自己的分析解決方案(Netlify、Vercel、Cloudflare..),同時,你也可以自主托管Plausible。 這是一個靜態網站。我使用Google Analytics,而我的目標受眾是開發人員。 這是一個完美的組合,但卻會導致不準確的分析數據,因為許多開發人員使用廣告屏蔽軟件,這可能(取決於情況)阻止Google Analytics數據傳輸到服務器。一些開發人員甚至完全阻止JavaScript,但我假設這只是一小部分人,所以並不是一個大問題。 我一直有這個疑問:真正的訪問人數是多少?我能看到的訪問者占百分之幾? 我的託管服務商沒有提供關於訪問量的任何信息。我只知道我消耗的帶寬。 所以我決定試一個想法。 我在每篇文章中都包含一個圖像,一個很小的圖像。 這不是什麼新鮮事:電子郵件營銷軟件自動使用這種“技巧”來計算開封率。 我使用了1像素x 1像素的SVG圖像,長度為141字節,以減少影響。 我在Glitch上建立了一個Node.js Web服務器。如果你在網站中包含了這個圖像,就像這樣: <img src="https://<name-of-the-project>.glitch.me/pixel.svg" /> 將會將圖像返回給位於<name-of-the-project>.glitch.meURL上的Node.js Web服務器。 但首先,它會增加一個值: const express = require('express') const app = express() let counter = 0 app.use( express.static('public', { setHeaders: (res, path, stat) => { console.log(++counter) } }) ) const listener = app.listen(process.env.PORT, () => { console.log('Your app is listening on port ' + listener.address().port) }) 這個應用的重要部分是我們傳遞給express.static()的對象。通常我們不會在這個方法中傳遞其他對象,但我們在這裡提供了setHeaders()函數,所以我們可以為即將返回的文件設置一些附加的標頭。 我們在那裡添加了console.log(),誤用了這個函數來達到我們的目的。 這很簡單,由於Glitch的工作原理,每次更新應用時計數器都會重置。 當然,這不應該是你的分析工具。只是一種快速測試分析數據是否與實際情況相符的方法。通常幾乎沒有人阻止圖片。 當然,這可以以不同的方式完成,因為我使用的是SVG,我也可以只將字符串回送給客戶端,並帶上適當的Content-Type標頭。我不知道這樣是否會更快,我還沒有試過。 你也可以以相同的方式提供CSS文件。只是我碰巧選擇了一個圖像。 我讓這個運行了3-4小時,數據與Google Analytics日誌相比,顯示大約有10%的訪問者沒有向Google Analytics發送數據。...