jQuery select change事件詳解

一、基本用法

1、首先需要在網頁中引入jQuery庫

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

2、通過jQuery選擇器選中目標select元素並綁定change事件

<select id="mySelect">
  <option value="1">選項1</option>
  <option value="2">選項2</option>
  <option value="3">選項3</option>
</select>

<script>
  $("#mySelect").change(function(){
    console.log("選中了一個新選項");
  });
</script>

3、在change事件的回調函數中編寫想要執行的代碼,比如控制頁面中其他元素的顯示或隱藏,發送AJAX請求等

<select id="mySelect">
  <option value="1">選項1</option>
  <option value="2">選項2</option>
  <option value="3">選項3</option>
</select>

<div id="myDiv" style="display:none">選中了選項2</div>

<script>
  $("#mySelect").change(function(){
    if($(this).val()==2){
      $("#myDiv").show();
    }else{
      $("#myDiv").hide();
    }
  });
</script>

二、事件冒泡和委託

1、當一個select元素有多個子元素時,如果直接給每個子元素都綁定change事件會導致代碼冗餘和效率低下。可以使用事件委託機制,將change事件綁定在其父元素上,由父元素代理子元素進行事件處理。

<div id="myDiv">
  <select class="mySelect">
    <option value="1">選項1</option>
    <option value="2">選項2</option>
    <option value="3">選項3</option>
  </select>
  <select class="mySelect">
    <option value="1">選項1</option>
    <option value="2">選項2</option>
    <option value="3">選項3</option>
  </select>
  <select class="mySelect">
    <option value="1">選項1</option>
    <option value="2">選項2</option>
    <option value="3">選項3</option>
  </select>
</div>

<script>
  $("#myDiv").on("change",".mySelect",function(){
    console.log("選中了一個新選項");
  });
</script>

2、在事件冒泡機制下,子元素的change事件會一直向上冒泡到父元素,直到被處理或到達文檔根部。可以使用stopPropagation方法實現事件的立即停止向上冒泡。

<div id="myDiv">
  <select id="child">
    <option value="1">選項1</option>
    <option value="2">選項2</option>
    <option value="3">選項3</option>
  </select>
</div>

<script>
  $("#child").change(function(event){
    event.stopPropagation();
    console.log("選中了一個新選項");
  });
  $("#myDiv").click(function(event){
    console.log("點擊了父元素");
  });
</script>

三、其他常用方法

1、獲取select元素當前選中的值

<select id="mySelect">
  <option value="1">選項1</option>
  <option value="2">選項2</option>
  <option value="3">選項3</option>
</select>

<script>
  $("#mySelect").change(function(){
    var currentValue=$(this).val();
    console.log("當前選中的值為:"+currentValue);
  });
</script>

2、動態添加和刪除option選項

<select id="mySelect">
  <option value="1">選項1</option>
  <option value="2">選項2</option>
  <option value="3">選項3</option>
</select>

<script>
  $("#mySelect").append("<option value='4'>選項4</option>");
  $("#mySelect option[value='2']").remove();
</script>

3、禁用和啟用select元素

<select id="mySelect">
  <option value="1">選項1</option>
  <option value="2">選項2</option>
  <option value="3">選項3</option>
</select>

<button id="disableBtn">禁用select元素</button>
<button id="enableBtn">啟用select元素</button>

<script>
  $("#disableBtn").click(function(){
    $("#mySelect").prop("disabled",true);
  });
  $("#enableBtn").click(function(){
    $("#mySelect").prop("disabled",false);
  });
</script>

原創文章,作者:EBITD,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/351743.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
EBITD的頭像EBITD
上一篇 2025-02-17 17:02
下一篇 2025-02-17 17:02

相關推薦

  • jQuery Datatable分頁中文

    jQuery Datatable是一個非常流行的數據表插件,它可以幫助您快速地在頁面上創建搜索、過濾、排序和分頁的數據表格。不過,它的默認設置是英文的,今天我們就來探討如何將jQu…

    編程 2025-04-29
  • 使用SQL實現select 聚合查詢結果前加序號

    select語句是資料庫中最基礎的命令之一,用於從一個或多個表中檢索數據。常見的聚合函數有:count、sum、avg等。有時候我們需要在查詢結果的前面加上序號,可以使用以下兩種方…

    編程 2025-04-29
  • tavjq – jQuery的輕量級替代品

    本文將對tavjq進行詳細的闡述,介紹其基本語法和主要優點。tavjq是一個輕量級的jQuery替代品,它的主要目的是提供一種更快速、更精簡的JavaScript選擇器和DOM操作…

    編程 2025-04-28
  • 抖音外放親媽下葬事件的背後真相

    近期,一段抖音外放親媽下葬的視頻引發廣泛關注和熱議。不少人對這個事件感到震驚和憤怒,認為這種行為非常不尊重親人,觸犯了社會公德和家庭道德。但是,事情真相到底是什麼呢?我們有必要從多…

    編程 2025-04-28
  • cc.director.on事件監聽器

    本文將從多個方面詳細介紹Cocos Creator中的cc.director.on事件監聽器。 一、cc.director.on的作用和用法 cc.director.on是Coco…

    編程 2025-04-27
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁碟中。在執行sync之前,所有的文件系統更新將不會立即寫入磁碟,而是先緩存在內存…

    編程 2025-04-25
  • 神經網路代碼詳解

    神經網路作為一種人工智慧技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網路的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網路模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分散式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25
  • C語言貪吃蛇詳解

    一、數據結構和演算法 C語言貪吃蛇主要運用了以下數據結構和演算法: 1. 鏈表 typedef struct body { int x; int y; struct body *nex…

    編程 2025-04-25

發表回復

登錄後才能評論