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

目錄
1. HTML 結(jié)構(gòu)準備
2. 核心jQuery 邏輯
2.1 處理“全選”複選框的點擊事件
2.2 處理單個複選框的點擊事件
3. 完整示例代碼
4. 注意事項與最佳實踐
總結(jié)
首頁 後端開發(fā) php教程 基於 jQuery 的分區(qū)域複選框聯(lián)動控制教程

基於 jQuery 的分區(qū)域複選框聯(lián)動控制教程

Jul 25, 2025 pm 08:09 PM
點擊事件

基於 jQuery 的分區(qū)域複選框聯(lián)動控制教程

本教程詳細介紹瞭如何使用jQuery 實現(xiàn)網(wǎng)頁中多個獨立區(qū)域內(nèi)復選框的“全選/全不選”功能。通過為每個區(qū)域設(shè)置一個“全選”複選框,並監(jiān)聽其及區(qū)域內(nèi)其他復選框的點擊事件,實現(xiàn)父子級複選框之間的狀態(tài)聯(lián)動。文章提供了清晰的HTML 結(jié)構(gòu)示例和完整的jQuery 代碼,幫助開發(fā)者高效地構(gòu)建用戶友好的表單交互。

在網(wǎng)頁開發(fā)中,我們經(jīng)常會遇到需要管理一組複選框,並提供一個“全選”功能來方便用戶操作的場景。當頁面上存在多個獨立的複選框組時,例如在不同的卡片或模塊中,每個組都需要有自己的“全選”功能,並且組與組之間互不影響。本教程將指導您如何使用jQuery 實現(xiàn)這種分區(qū)域的複選框聯(lián)動控制。

1. HTML 結(jié)構(gòu)準備

為了使jQuery 能夠高效地識別和操作不同區(qū)域的複選框,我們需要對HTML 結(jié)構(gòu)進行一些約定。關(guān)鍵在於為每個獨立的複選框組添加一個公共的父級類,並為每個組的“全選”複選框添加一個特定的類。

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

 <div class="actions" id="actions" title="Actions">
   <!-- 第一個複選框組-->
   <div class="myDiv">
       <div>
<input type="checkbox" name="action" class="selectAll" value="0"> Select All</div>
<br>
       <div>
<input type="checkbox" name="action" value="1"> Item 1</div>
<br>
       <div>
<input type="checkbox" name="action" value="2"> Item 2</div>
<br>
       <div>
<input type="checkbox" name="action" value="3"> Item 3</div>
<br>
   </div>

   <!-- 第二個複選框組-->
   <div class="myDiv">
       <div>
<input type="checkbox" name="action" class="selectAll" value="26">Select All</div>
<br>
       <div>
<input type="checkbox" name="action" value="27"> Item 4</div>
<br>
       <div>
<input type="checkbox" name="action" value="28"> Item 5</div>
<br>
       <div>
<input type="checkbox" name="action" value="29"> Item 6</div>
<br>
       <div>
<input type="checkbox" name="action" value="30"> Item 7</div>
<br>
       <div>
<input type="checkbox" name="action" value="31"> Item 8</div>
   </div>
</div>

結(jié)構(gòu)說明:

  • div.myDiv: 這是每個獨立復選框組的容器。通過這個類,我們可以輕鬆地在jQuery 中定位到特定的組。
  • input.selectAll: 這是每個組內(nèi)的“全選”複選框。
  • 其他input[type="checkbox"]: 這些是組內(nèi)的普通複選框。

2. 核心jQuery 邏輯

我們將通過監(jiān)聽複選框的click 事件來實現(xiàn)聯(lián)動效果。主要分為兩部分邏輯:處理“全選”複選框的點擊事件,以及處理單個複選框的點擊事件。

在開始編寫JavaScript 代碼之前,請確保您的頁面中已引入jQuery 庫:

 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

2.1 處理“全選”複選框的點擊事件

當用戶點擊某個“全選”複選框時,我們需要根據(jù)其當前狀態(tài)來同步該組內(nèi)所有其他復選框的狀態(tài)。

 $('.selectAll').on('click', function() {
  let isSelected = $(this).is(':checked'); // 獲取“全選”複選框的當前選中狀態(tài)// 找到當前“全選”複選框所在的父級.myDiv 容器// 然後在該容器內(nèi)查找所有類型為checkbox 的input 元素$(this).parents('.myDiv').find('input[type="checkbox"]').prop('checked', isSelected);
});

代碼解析:

  • $('.selectAll').on('click', function(){...}): 為所有帶有selectAll 類的複選框綁定點擊事件。
  • $(this).is(':checked'): 獲取當前被點擊的“全選”複選框的選中狀態(tài)(true 或false)。
  • $(this).parents('.myDiv'): 從當前點擊的元素向上查找,直到找到最近的具有myDiv 類的父元素。這確保了我們只操作當前組內(nèi)的複選框。
  • find('input[type="checkbox"]'): 在找到的myDiv 容器內(nèi),查找所有type 為checkbox 的input 元素,包括“全選”複選框本身。
  • .prop('checked', isSelected): 使用jQuery 的prop() 方法設(shè)置所有找到的複選框的checked 屬性,使其與“全選”複選框的狀態(tài)保持一致。

2.2 處理單個複選框的點擊事件

當用戶點擊組內(nèi)的任意一個普通複選框時,我們需要根據(jù)該組內(nèi)所有普通複選框的選中情況,來自動更新“全選”複選框的狀態(tài)。

 $('input:not(".selectAll")').on('click', function() {
  let $parentDiv = $(this).parents('.myDiv'); // 獲取當前複選框所在的父級.myDiv 容器// 獲取當前組內(nèi)所有非“全選”的普通複選框let $individualCheckboxes = $parentDiv.find('input:not(".selectAll")');

  // 獲取當前組內(nèi)所有非“全選”且已被選中的普通複選框let $checkedIndividualCheckboxes = $parentDiv.find('input:not(".selectAll"):checked');

  // 獲取當前組的“全選”複選框let $selectAllCheckbox = $parentDiv.find('.selectAll');

  // 檢查是否所有普通複選框都被選中if ($individualCheckboxes.length === $checkedIndividualCheckboxes.length) {
    // 如果所有普通複選框都選中,則“全選”複選框也應該選中$selectAllCheckbox.prop('checked', true);
  } else {
    // 否則,“全選”複選框應該取消選中$selectAllCheckbox.prop('checked', false);
  }
});

代碼解析:

  • $('input:not(".selectAll")').on('click', function(){...}): 為所有不是selectAll 類的複選框綁定點擊事件。
  • let $parentDiv = $(this).parents('.myDiv');: 同樣,獲取當前點擊複選框所屬的myDiv 容器。
  • $parentDiv.find('input:not(".selectAll")'): 查找當前組內(nèi)所有非“全選”的複選框。
  • $parentDiv.find('input:not(".selectAll"):checked'): 查找當前組內(nèi)所有非“全選”且處於選中狀態(tài)的複選框。
  • 通過比較length 屬性,判斷所有普通複選框是否都被選中。
  • $selectAllCheckbox.prop('checked', true/false): 根據(jù)判斷結(jié)果,更新當前組的“全選”複選框的選中狀態(tài)。

3. 完整示例代碼

將上述HTML 結(jié)構(gòu)和jQuery 邏輯整合在一起,即可實現(xiàn)所需的功能。

 


    
    
    jQuery 分區(qū)域複選框聯(lián)動控制
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    



Select All (Group 1)

Item 1.1

Item 1.2

Item 1.3

Select All (Group 2)

Item 2.1

Item 2.2

Item 2.3

Item 2.4

Item 2.5
<script> $(document).ready(function() { // 處理“全選”複選框的點擊事件$(&#39;.selectAll&#39;).on(&#39;click&#39;, function() { let isSelected = $(this).is(&#39;:checked&#39;); $(this).parents(&#39;.myDiv&#39;).find(&#39;input[type="checkbox"]&#39;).prop(&#39;checked&#39;, isSelected); }); // 處理單個複選框的點擊事件$(&#39;input:not(".selectAll")&#39;).on(&#39;click&#39;, function() { let $parentDiv = $(this).parents(&#39;.myDiv&#39;); let $individualCheckboxes = $parentDiv.find(&#39;input:not(".selectAll")&#39;); let $checkedIndividualCheckboxes = $parentDiv.find(&#39;input:not(".selectAll"):checked&#39;); let $selectAllCheckbox = $parentDiv.find(&#39;.selectAll&#39;); if ($individualCheckboxes.length === $checkedIndividualCheckboxes.length) { $selectAllCheckbox.prop(&#39;checked&#39;, true); } else { $selectAllCheckbox.prop(&#39;checked&#39;, false); } }); }); </script>

4. 注意事項與最佳實踐

  • jQuery 庫引用:確保在您的JavaScript 代碼執(zhí)行之前,jQuery 庫已經(jīng)被正確引入。通常建議在 標籤結(jié)束前引入,或者在 中使用defer 屬性。
  • 類名約定:保持myDiv 和selectAll 等類名的一致性,它們是jQuery 選擇器能夠準確工作的基礎(chǔ)。
  • 性能考量:對於包含大量複選框的複雜頁面,雖然上述方法在大多數(shù)情況下表現(xiàn)良好,但如果遇到性能瓶頸,可以考慮使用事件委託($(document).on('click', '.selectAll', function(){...})),它可以減少事件監(jiān)聽器的數(shù)量。
  • 初始化狀態(tài):如果頁面加載時某些複選框組可能已經(jīng)有部分或全部選中狀態(tài),您可能需要在$(document).ready() 中添加額外的邏輯來初始化“全選”複選框的狀態(tài)。例如,遍歷每個.myDiv 並根據(jù)其內(nèi)部複選框的初始狀態(tài)來設(shè)置selectAll 複選框。

總結(jié)

通過本教程,您學會瞭如何利用jQuery 的事件監(jiān)聽和DOM 遍歷功能,實現(xiàn)分區(qū)域的複選框“全選/全不選”聯(lián)動控制。這種方法不僅結(jié)構(gòu)清晰、易於理解,而且能夠有效地提升用戶在處理多組表單數(shù)據(jù)時的操作體驗。掌握這種模式,將有助於您構(gòu)建更具交互性和用戶友好性的Web 應用。

以上是基於 jQuery 的分區(qū)域複選框聯(lián)動控制教程的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔相應的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

layui登陸頁怎麼設(shè)定跳轉(zhuǎn) layui登陸頁怎麼設(shè)定跳轉(zhuǎn) Apr 04, 2024 am 03:12 AM

layui 登入頁面跳轉(zhuǎn)設(shè)定步驟:新增跳轉(zhuǎn)代碼:在登入表單提交按鈕點選事件中新增判斷,成功登入後透過 window.location.href 跳到指定頁面。修改 form 配置:在 lay-filter="login" 的 form 元素中新增 hidden 輸入字段,name 為 "redirect",value 為目標頁面位址。

利用Golang開發(fā)功能強大的桌面應用 利用Golang開發(fā)功能強大的桌面應用 Mar 19, 2024 pm 05:45 PM

利用Golang開發(fā)功能強大的桌面應用隨著網(wǎng)路的不斷發(fā)展,人們已經(jīng)離不開各種類型的桌面應用程式。而對於開發(fā)人員來說,如何利用高效率的程式語言來開發(fā)功能強大的桌面應用至關(guān)重要。本文將介紹如何利用Golang(Go語言)來開發(fā)功能強大的桌面應用,並提供一些具體的程式碼範例。 Golang是一種由Google開發(fā)的開源程式語言,它具有簡潔、高效、並發(fā)性強等特點,非常適

PHP技巧:快速實現(xiàn)返回上一頁功能 PHP技巧:快速實現(xiàn)返回上一頁功能 Mar 09, 2024 am 08:21 AM

PHP技巧:快速實現(xiàn)回到上一頁功能在網(wǎng)頁開發(fā)中,常常會遇到需要實作返回上一頁的功能。這樣的操作可以提高使用者體驗,讓使用者更方便地在網(wǎng)頁之間進行導航。在PHP中,我們可以透過一些簡單的程式碼來實現(xiàn)這項功能。本文將介紹如何快速實現(xiàn)返回上一頁功能,並提供具體的PHP程式碼範例。在PHP中,我們可以使用$_SERVER['HTTP_REFERER']來取得上一頁的URL

vue中圖片怎麼加入碰事件 vue中圖片怎麼加入碰事件 May 02, 2024 pm 10:21 PM

如何為 Vue 中的圖片新增點擊事件?導入 Vue 實例。建立 Vue 實例。在 HTML 模板中新增圖片。使用 v-on:click 指令新增點擊事件。在 Vue 實例中定義 handleClick 方法。

鴻蒙 HarmonyOS 與 Go 語言開發(fā) 鴻蒙 HarmonyOS 與 Go 語言開發(fā) Apr 08, 2024 pm 04:48 PM

鴻蒙HarmonyOS與Go語言開發(fā)簡介鴻蒙HarmonyOS是華為開發(fā)的分散式作業(yè)系統(tǒng),而Go是一種現(xiàn)代化的程式語言,兩者的結(jié)合為開發(fā)分散式應用提供了強大的解決方案。本文將介紹如何在HarmonyOS中使用Go語言進行開發(fā),並透過實戰(zhàn)案例加深理解。安裝與設(shè)定要使用Go語言開發(fā)HarmonyOS應用,你需要先安裝GoSDK和HarmonyOSSDK。具體步驟如下:#安裝GoSDKgoge??tgithub.com/golang/go#設(shè)定PATH

vue怎麼給按鈕添加函數(shù) vue怎麼給按鈕添加函數(shù) Apr 08, 2025 am 08:51 AM

可以通過以下步驟為 Vue 按鈕添加函數(shù):將 HTML 模板中的按鈕綁定到一個方法。在 Vue 實例中定義該方法並編寫函數(shù)邏輯。

C++ 函式在並發(fā)程式設(shè)計中的事件驅(qū)動機制? C++ 函式在並發(fā)程式設(shè)計中的事件驅(qū)動機制? Apr 26, 2024 pm 02:15 PM

並發(fā)程式設(shè)計中的事件驅(qū)動機制透過在事件發(fā)生時執(zhí)行回呼函數(shù)來回應外部事件。在C++中,事件驅(qū)動機制可用函數(shù)指標實作:函數(shù)指標可以註冊回呼函數(shù),在事件發(fā)生時執(zhí)行。 lambda表達式也可以實現(xiàn)事件回調(diào),允許建立匿名函數(shù)物件。實戰(zhàn)案例使用函數(shù)指標實作GUI按鈕點擊事件,在事件發(fā)生時呼叫回呼函數(shù)並列印訊息。

css中div什麼意思 css中div什麼意思 Apr 28, 2024 pm 02:21 PM

CSS 中的 DIV 是一個文件分隔器或容器,用途包括:分組內(nèi)容、建立佈局、新增樣式和互動性。在 HTML 中,DIV 元素使用語法 <div></div>,其中 div 表示元素,可以新增屬性和內(nèi)容。 DIV 是一個區(qū)塊級元素,在瀏覽器中會佔據(jù)一整行。

See all articles