亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索

使用 JavaScript 通過 ID 匹配不同父元素中的元素(鼠標(biāo)懸停時(shí))

心靈之曲
發(fā)布: 2025-10-18 08:44:01
原創(chuàng)
300人瀏覽過

使用 javascript 通過 id 匹配不同父元素中的元素(鼠標(biāo)懸停時(shí))

本文介紹如何使用 JavaScript 實(shí)現(xiàn)當(dāng)鼠標(biāo)懸停在一個(gè) `div.first` 中的 `li` 元素上時(shí),為 `div.second` 中具有相同 ID 的 `li` 元素添加 `.active` 類。該方案適用于 ID 動(dòng)態(tài)生成且事先未知的情況,并提供詳細(xì)的 JavaScript 代碼示例和 CSS 樣式,方便讀者理解和應(yīng)用。

在 Web 開發(fā)中,有時(shí)我們需要實(shí)現(xiàn)一種交互效果:當(dāng)鼠標(biāo)懸停在一個(gè)區(qū)域的元素上時(shí),另一個(gè)區(qū)域的對(duì)應(yīng)元素也發(fā)生變化。本文將介紹如何使用 JavaScript 實(shí)現(xiàn)這一功能,具體來說,當(dāng)鼠標(biāo)懸停在一個(gè) div.first 中的 li 元素上時(shí),為 div.second 中具有相同 ID 的 li 元素添加 .active 類。

實(shí)現(xiàn)原理

核心思想是利用 JavaScript 監(jiān)聽 div.first 中所有 li 元素的 mouseover 和 mouseout 事件。當(dāng) mouseover 事件觸發(fā)時(shí),獲取當(dāng)前 li 元素的 ID,然后在 div.second 中查找具有相同 ID 的 li 元素,并添加 .active 類。當(dāng) mouseout 事件觸發(fā)時(shí),移除 .active 類。

代碼實(shí)現(xiàn)

以下是完整的 JavaScript 代碼實(shí)現(xiàn):

立即學(xué)習(xí)Java免費(fèi)學(xué)習(xí)筆記(深入)”;

document.querySelectorAll(".first ul li").forEach(li => {
  li.addEventListener("mouseover", e => {
    document.querySelectorAll(`#${e.target.id}`)[1].classList.add("active");
  });
  li.addEventListener("mouseout", e => {
    document.querySelectorAll(`#${e.target.id}`)[1].classList.remove("active");
  });
});
登錄后復(fù)制

這段代碼首先使用 querySelectorAll 方法獲取所有位于 .first 類下的 ul 元素中的 li 元素。然后,使用 forEach 方法遍歷這些 li 元素,并為每個(gè)元素添加 mouseover 和 mouseout 事件監(jiān)聽器。

在 mouseover 事件監(jiān)聽器中,e.target.id 獲取當(dāng)前鼠標(biāo)懸停的 li 元素的 ID。然后,使用 querySelectorAll(#${e.target.id}) 查找具有相同 ID 的所有元素。由于我們需要操作的是 div.second 中的元素,因此我們使用 [1] 來獲取第二個(gè)匹配的元素(第一個(gè)匹配的元素是 div.first 中的 li 元素本身)。最后,使用 classList.add("active") 為該元素添加 .active 類。

騰訊元寶
騰訊元寶

騰訊混元平臺(tái)推出的AI助手

騰訊元寶223
查看詳情 騰訊元寶

mouseout 事件監(jiān)聽器中的邏輯類似,只是將 classList.add("active") 替換為 classList.remove("active"),用于移除 .active 類。

HTML 結(jié)構(gòu)

以下是 HTML 結(jié)構(gòu)示例:

<div class="first">
  <ul>
    <li id="one">Lorem</li>
    <li id="two">Ipsum</li>
    <li id="three">Dolor</li>
  </ul>
</div>

<div class="second">
  <ul>
    <li id="one">Lorem</li>
    <li id="two">Ipsum</li>
    <li id="three">Dolor</li>
  </ul>
</div>
登錄后復(fù)制

CSS 樣式

為了使 .active 類生效,我們需要定義相應(yīng)的 CSS 樣式:

.active {
  background: #CCC;
}
登錄后復(fù)制

這段 CSS 代碼會(huì)將具有 .active 類的元素的背景色設(shè)置為灰色。

注意事項(xiàng)

  • ID 唯一性: 此方法依賴于 ID 的唯一性。確保頁面上所有 li 元素的 ID 都是唯一的,否則可能會(huì)導(dǎo)致意外的結(jié)果。
  • 性能優(yōu)化: 如果頁面上有大量的 li 元素,頻繁的 querySelectorAll 操作可能會(huì)影響性能??梢钥紤]使用事件委托等技術(shù)進(jìn)行優(yōu)化。
  • 適用場(chǎng)景: 此方法適用于 ID 動(dòng)態(tài)生成且事先未知的情況。如果 ID 是靜態(tài)的,可以使用 CSS :hover 偽類和相鄰兄弟選擇器等方法來實(shí)現(xiàn)類似的效果,性能更高。

總結(jié)

本文介紹了如何使用 JavaScript 實(shí)現(xiàn)當(dāng)鼠標(biāo)懸停在一個(gè) div.first 中的 li 元素上時(shí),為 div.second 中具有相同 ID 的 li 元素添加 .active 類。該方案適用于 ID 動(dòng)態(tài)生成且事先未知的情況,并提供了詳細(xì)的代碼示例和注意事項(xiàng)。希望本文能夠幫助讀者更好地理解和應(yīng)用 JavaScript 技術(shù)。

以上就是使用 JavaScript 通過 ID 匹配不同父元素中的元素(鼠標(biāo)懸停時(shí))的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!

最佳 Windows 性能的頂級(jí)免費(fèi)優(yōu)化軟件
最佳 Windows 性能的頂級(jí)免費(fèi)優(yōu)化軟件

每個(gè)人都需要一臺(tái)速度更快、更穩(wěn)定的 PC。隨著時(shí)間的推移,垃圾文件、舊注冊(cè)表數(shù)據(jù)和不必要的后臺(tái)進(jìn)程會(huì)占用資源并降低性能。幸運(yùn)的是,許多工具可以讓 Windows 保持平穩(wěn)運(yùn)行。

下載
來源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn
最新問題
開源免費(fèi)商場(chǎng)系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)