亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaScript實(shí)現(xiàn)搜索高亮功能詳解

 更新時(shí)間:2025年05月01日 09:30:33   作者:友人.227  
這篇文章主要介紹了JavaScript實(shí)現(xiàn)搜索高亮功能,搜索功能是常見的需求之一,為了提升用戶體驗(yàn),我們可以通過高亮顯示搜索結(jié)果中的關(guān)鍵詞來幫助用戶快速定位信息,需要的朋友可以參考下

前言

在開發(fā) Web 應(yīng)用時(shí),搜索功能是常見的需求之一。為了提升用戶體驗(yàn),我們可以通過高亮顯示搜索結(jié)果中的關(guān)鍵詞來幫助用戶快速定位信息。本文將介紹如何使用 HTML、CSS 和 JavaScript 實(shí)現(xiàn)一個簡單的搜索高亮功能。

1. 功能需求

我們的目標(biāo)是實(shí)現(xiàn)一個簡單的搜索框,用戶可以在其中輸入關(guān)鍵詞。當(dāng)用戶點(diǎn)擊搜索按鈕時(shí):

  • 如果輸入框?yàn)榭?,則清除所有已有的高亮。
  • 如果輸入框中有關(guān)鍵詞,則在頁面內(nèi)容中查找并高亮顯示所有匹配的文本。

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

HTML 部分非常簡單,包含一個搜索框、一個搜索按鈕和一些示例文本內(nèi)容。以下是完整的 HTML 代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>搜索高亮功能</title>
   <!-- 寫css的地方 -->
   <style></style>
</head>
<body>
    <div class="search-container">
        <input type="text" id="search-input" placeholder="請輸入搜索關(guān)鍵詞">
        <button id="search-button">搜索</button>
    </div>
    <div class="content">
        <p class="content-right">這是一個示例文本,用于演示搜索高亮功能。</p>
        <p class="content-right">你可以輸入關(guān)鍵詞,比如“示例”或“高亮”,看看效果。</p>
        <p class="content-right">這個功能使用了 JavaScript 來實(shí)現(xiàn)。</p>
    </div>
</body>
</html>

3. CSS 樣式

為了提升視覺效果,我們使用 CSS 對頁面進(jìn)行簡單的樣式設(shè)計(jì)。以下是 styles.css 的內(nèi)容:

body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
    background-color: #f4f4f4;
}
.search-container {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 20px;
}
#search-input {
    padding: 10px;
    font-size: 16px;
    border: 1px solid #ccc;
    border-radius: 4px;
    width: 300px;
}
#search-button {
    padding: 10px 20px;
    font-size: 16px;
    background-color: #007BFF;
    color: white;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    margin-left: 10px;
}
#search-button:hover {
    background-color: #0056b3;
}
.content {
    margin: 20px;
}
.content-right {
    margin-bottom: 10px;
    padding: 10px;
    background-color: white;
    border: 1px solid #ddd;
    border-radius: 4px;
}
em {
    background-color: yellow;
    font-weight: bold;
}

4. JavaScript 實(shí)現(xiàn)

JavaScript 是實(shí)現(xiàn)搜索高亮功能的核心部分。以下是代碼的詳細(xì)解析:

document.addEventListener("DOMContentLoaded", () => {
    const searchInput = document.getElementById("search-input");
    const searchButton = document.getElementById("search-button");
    const contentItems = document.querySelectorAll(".content-right");
    searchButton.addEventListener("click", () => {
        const keyword = searchInput.value.trim();
        // 清除之前的高亮
        contentItems.forEach(item => {
            item.innerHTML = item.textContent;
        });
        // 如果關(guān)鍵詞不為空,則進(jìn)行高亮
        if (keyword) {
            contentItems.forEach(item => {
                if (item.textContent.includes(keyword)) {
                    item.innerHTML = item.textContent.replace(
                        new RegExp(keyword, "gi"),
                        `<em>${keyword}</em>`
                    );
                }
            });
        }
    });
});

5. 總結(jié)

通過簡單的 HTML、CSS 和 JavaScript,我們實(shí)現(xiàn)了一個搜索高亮功能。這個功能不僅可以提升用戶體驗(yàn),還可以作為學(xué)習(xí)前端開發(fā)的一個很好的實(shí)踐項(xiàng)目。你可以根據(jù)實(shí)際需求進(jìn)一步擴(kuò)展功能,例如支持動態(tài)內(nèi)容更新或優(yōu)化性能。

希望這篇文章對你有所幫助!如果你有任何問題或建議,歡迎在評論區(qū)留言。

  • 獲取 DOM 元素:

使用 document.getElementByIddocument.querySelectorAll 獲取搜索框、搜索按鈕和內(nèi)容區(qū)域。

  • 綁定點(diǎn)擊事件:

為搜索按鈕綁定點(diǎn)擊事件,當(dāng)用戶點(diǎn)擊按鈕時(shí)觸發(fā)搜索邏輯。

  • 清除高亮:

在每次搜索前,清除之前的所有高亮內(nèi)容。通過將 innerHTML 替換為 textContent,移除所有 <em> 標(biāo)簽。

  • 高亮關(guān)鍵詞:

如果用戶輸入的關(guān)鍵詞不為空,使用 String.prototype.includes 判斷內(nèi)容中是否包含關(guān)鍵詞。

使用正則表達(dá)式和 String.prototype.replace 方法將關(guān)鍵詞替換為 <em> 包裹的文本,實(shí)現(xiàn)高亮效果。

以上就是JavaScript實(shí)現(xiàn)搜索高亮功能詳解的詳細(xì)內(nèi)容,更多關(guān)于JavaScript搜索高亮的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • H5 js點(diǎn)擊按鈕復(fù)制文本到粘貼板

    H5 js點(diǎn)擊按鈕復(fù)制文本到粘貼板

    這篇文章主要為大家詳細(xì)介紹了H5 js點(diǎn)擊按鈕復(fù)制文本到粘貼板,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • 微信小程序tabBar設(shè)置實(shí)例解析

    微信小程序tabBar設(shè)置實(shí)例解析

    這篇文章主要介紹了微信小程序tabBar設(shè)置實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 詳解JavaScript中數(shù)組的reduce方法

    詳解JavaScript中數(shù)組的reduce方法

    js函數(shù)中有三個在特定場合很好用的函數(shù):reduce(),map(),filter()。而數(shù)組經(jīng)常用到的方法有push、join、indexOf、slice等等,但是有一個經(jīng)常被我們忽略的方法:reduce,這個方法簡直強(qiáng)大的不要不要的。下面通過這篇文章來一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-12-12
  • js實(shí)現(xiàn)仿微博滾動顯示信息的效果

    js實(shí)現(xiàn)仿微博滾動顯示信息的效果

    這篇文章主要介紹了js實(shí)現(xiàn)仿微博滾動顯示信息的效果,通過由上往下滾動來實(shí)現(xiàn)不斷顯示微博的,而且每一天新微博都是通過淡入效果顯示的,需要的朋友可以參考下
    2015-12-12
  • js布局實(shí)現(xiàn)單選按鈕控件

    js布局實(shí)現(xiàn)單選按鈕控件

    這篇文章主要為大家詳細(xì)介紹了js布局實(shí)現(xiàn)單選按鈕控件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • JavaScript中set與get方法用法示例

    JavaScript中set與get方法用法示例

    這篇文章主要介紹了JavaScript中set與get方法用法,簡單描述了set與get方法的功能,并結(jié)合實(shí)例形式分析了set與get方法的具體使用技巧,需要的朋友可以參考下
    2018-08-08
  • 一文搞懂JavaScript中原型與原型鏈

    一文搞懂JavaScript中原型與原型鏈

    js中的原型與原型鏈應(yīng)該是老生常談的話題了,在前端面試中基本都是必問的一個問題,但是很多人還是稀里糊涂的,只知道其表層含義。本文將帶大家深入了解JavaScript中的原型與原型鏈,感興趣的可以學(xué)習(xí)一下
    2022-10-10
  • 淺談Javascript鼠標(biāo)和滾輪事件

    淺談Javascript鼠標(biāo)和滾輪事件

    淺談Javascript鼠標(biāo)和滾輪事件,鼠標(biāo)事件也許是web頁面當(dāng)中最常用到的事件,因?yàn)槭髽?biāo)是最常用的導(dǎo)航設(shè)備
    2012-06-06
  • js實(shí)現(xiàn)幻燈片效果(基于jquery插件)

    js實(shí)現(xiàn)幻燈片效果(基于jquery插件)

    說起幻燈片效果,想必大家都不陌生吧,接下來為大家介紹下使用jquery插件jquery.smallslider.js實(shí)現(xiàn)幻燈片效果示例代碼,喜歡的朋友可以學(xué)習(xí)下
    2013-11-11
  • JavaScript Alert通用美化類

    JavaScript Alert通用美化類

    只有msg是必須的,后面的參數(shù)可以省略。如果中間的參數(shù)為空則在對應(yīng)位置上''或者""表示(根據(jù)實(shí)際情況選擇單雙引號) 調(diào)用此方法須在每個使用的頁面的head區(qū)域加入下面代碼。
    2009-11-11

最新評論