Jquery 全選、反選問題解析

  最近工作中,需要使用Jquery實現復選框的全選和反選,本人雖然不是專職擼前端的,但這個小問題感覺也沒什么難度,下面直接上代碼:

        <div id="list">  <ul class="mui-table-view textOverflow" id="notesList" >                 <li><input type="checkbox" name="notices" value="1"> 籃球</li><li><input type="checkbox" name="notices" value="1"> 足球</li><li><input type="checkbox" name="notices" value="1"> 乒乓球</li><li><input type="checkbox" name="notices" value="1"> 羽毛球</li><li><input type="checkbox" name="notices" value="1"> 排球</li>     </ul></div><input type="button" id="all" value="全選/全不選"><input type="button" value="全選" class="btn" id="selectAll">  <input type="button" value="全不選" class="btn" id="unSelect"> 

  Jquery的代碼是這樣實現的:

$("#all").click(function(){

  if($('input[name="notices"]').prop('checked') == true){

    $('input[name="notices"]').prop('checked',false);
  }else{
     $('input[name="notices"]').prop('checked',true);
  }

}); ? 這邊根據樓下的建議,不再使用each了。

?

  邏輯上是沒什么問題的,但是結果卻出乎意料,全選之后,再次點擊,頁面直接沒反應了,首先檢查了一遍代碼,發現沒有什么語法的問題,繼續尋找問題,我用的是chrome 瀏覽器,進度debug模式,發現js腳本也沒報錯,我剛開始以為是瀏覽器的兼容性問題,使用IE10,火狐調試依然有這個問題,很是苦惱,就在網上尋找答案,有人提示說 attr和prop在jquery中的用法可能不太一樣,于是就去尋找jquery API,

果然找到了 可用的信息,以下是官網文檔說明:

Attributes vs. Properties

attributesproperties之間的差異在特定情況下是很重要jQuery 1.6之前?,.attr()方法在取某些 attribute 的值時,會返回 property 的值,這就導致了結果的不一致。從 jQuery 1.6 開始,?.prop()方法 方法返回 property 的值,而?.attr()?方法返回 attributes 的值。

例如,?selectedIndex,?tagName,?nodeName,?nodeType,?ownerDocument,?defaultChecked, 和?defaultSelected?應使用.prop()方法進行取值或賦值。?在jQuery1.6之前,這些屬性使用.attr()方法取得,但是這并不是元素的attr屬性。他們沒有相應的屬性(attributes),只有特性(property)。

例如,考慮一個DOM元素的HTML標記中定義的<input type="checkbox" checked="checked" />?,并假設它是一個JavaScript變量命名的e

elem.checkedtrue?(Boolean) 將隨著復選框狀態的改變而改變
$(elem).prop("checked")true?(Boolean) 將隨著復選框狀態的改變而改變
elem.getAttribute("checked")"checked"?(String) 復選框的初始狀態;不會改變
$(elem).attr("checked")?(1.6)"checked"?(String) 復選框的初始狀態;不會改變
$(elem).attr("checked")?(1.6.1+)"checked"?(String) 將隨著復選框狀態的改變而改變
$(elem).attr("checked")?(pre-1.6)true?(Boolean) 將隨著復選框狀態的改變而改變

根據W3C的表單規范?,在checked屬性是一個布爾屬性, 這意味著,如果這個屬性(attribute)是目前存在, 即使,該屬性沒有對應的值,或者被設置為空字符串值,或甚至是"false",相應的屬性(property)為true。 這才是真正的所有布爾屬性(attributes)。

然而,要記住的最重要的概念是checked特性(attribute)不是對應它checked屬性(property)。特性(attribute)實際對應的是defaultChecked屬性(property),而且僅用于設置復選框最初的值。checked特性(attribute)值不會因為復選框的狀態而改變,而checked屬性(property)會因為復選框的狀態而改變。因此, ?跨瀏覽器兼容的方法來確定一個復選框是否被選中,是使用該屬性(property):

  • if ( elem.checked )
  • if ( $(elem).prop("checked") )
  • if ( $(elem).is(":checked") )

對于其他的動態屬性,同樣是true,比如?selected?和?value.

以上API說的很清楚,checked是布爾屬性,而checked特性不是對應它checked屬性,它對應的是defaultChecked屬性,即它是不會隨著復選框的狀態而改變的。

此時我看了我的Jquyer 版本

<script type="text/javascript" src="jquery-1.11.1/jquery.min.js"></script>

1.11.1比1.6.1高了好幾個版本,我首先把上面的代碼的attr方法全部替換成prop方法,測試,通過,好使

然后我又從網上下載一個比1.6.1版本低的jquery,用以上的代碼,也可以實現 全選/反選。

?

轉載于:https://www.cnblogs.com/gzd-123/p/5662893.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/254916.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/254916.shtml
英文地址,請注明出處:http://en.pswp.cn/news/254916.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

分層

1. UI&#xff08;用戶層&#xff09;&#xff0c;BLL&#xff08;業務邏輯層&#xff09;&#xff0c;DAL&#xff08;數據訪問層&#xff09;. UI是用來顯示的&#xff0c;比如說一些顯示的樣式還有界面設計。 BLL是用來處理業務邏輯的問題。 DAL是和數據庫打交道的。 2.數…

德國汽車廠發生機器人殺人事件 人機協作是大勢所趨

OFweek機器人網訊&#xff1a;《金融時報》報道稱&#xff0c;德國大眾汽車制造廠中一個機器人殺死了一名人類工作人員。當時這名21歲的工人正在安裝和調制機器人&#xff0c;后者突然“出手”擊中工人的胸部&#xff0c;并將其碾壓在金屬板上。這名工人當場死亡。 調查人員正對…

H264 視頻文件 幀格式 傳輸封裝等 雜碎

H264 視頻文件 幀格式 傳輸封裝等 雜碎 rfc3984 Standards Track [Page 2] RFC 3984 RTP Payload Format for H.264 Video February 2005 1. 按照RFC3984協議實現H264視頻流媒體nalu單元 包起始 0x 00 00 00 01H&#xff0e;264 NAL格式及分析器http://hi.baidu.com/zsw%5Fdavy…

Tomcat 調優及 JVM 參數優化

Tomcat 的缺省配置是不能穩定長期運行的&#xff0c;也就是不適合生產環境&#xff0c;它會死機&#xff0c;讓你不斷重新啟動&#xff0c;甚至在午夜時分喚醒你。對于操作系統優化來說&#xff0c;是盡可能的增大可使用的內存容量、提高CPU 的頻率&#xff0c;保證文件系統的讀…

HALCON示例程序sequence_diff.hdev通過兩張連續圖像進行車輛流量監控

小哥哥小姐姐覺得有用點個贊唄&#xff01; HALCON示例程序sequence_diff.hdev通過兩張連續圖像進行車輛流量監控 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 Thresh : 35 dev_update_window (‘off’) dev_update_pc (‘off’) dev_update_var (‘of…

PID與伺服驅動器

1、開環控制系統 開環控制系統(open-loop control system)是指被控對象 (被控量)對控制器(controller)的輸出沒有影響。在這種控制系統中&#xff0c;不依賴將被控量反送回來以形成任何閉環回路。 2、閉環控制系統 閉環控制系統(closed-loop control system)的特點是系統被控…

最新IP數據庫 存儲優化 查詢性能優化 每秒解析上千萬

高性能IP數據庫格式詳解每秒解析1000多萬ip qqzeng-ip-ultimate.dat 3.0版編碼&#xff1a;UTF8 字節序&#xff1a;Little-Endian 返回規范字段&#xff08;如&#xff1a;亞洲|中國|香港|九龍|油尖旺|新世界電訊|810200|Hong Kong|HK|114.17495|22.327115&#xff09; -…

HALCON示例程序stamp_catalogue.hdev分割圖片與文字

小哥哥小姐姐覺得有用點個贊唄&#xff01; HALCON示例程序stamp_catalogue.hdev分割圖片與文字 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 gen_rectangle1 (Rect, 0, 0, 5, 5) dev_update_var (‘off’) dev_update_window (‘off’) dev_close_win…

[BZOJ]1023: [SHOI2008]cactus仙人掌圖

Time Limit: 1 Sec Memory Limit: 162 MB Description 如果某個無向連通圖的任意一條邊至多只出現在一條簡單回路&#xff08;simple cycle&#xff09;里&#xff0c;我們就稱這張圖為仙人掌圖&#xff08;cactus&#xff09;。所謂簡單回路就是指在圖上不重復經過任何一個頂…

實現RTP協議的H.264視頻傳輸系統

1. 引言 隨著信息產業的發展&#xff0c;人們對信息資源的要求已經逐漸由文字和圖片過渡到音頻和視頻&#xff0c;并越來越強調獲取資源的實時性和互動性。但人們又面臨著另外一種不可避免的尷尬&#xff0c;就是在網絡上看到生動清晰的媒體演示的同時&#xff0c;不得…

機器人網首頁應用實例工業自動化 EtherCAT 技術在庫卡機器人控制系統上的應用

自 2010 年以來&#xff0c;庫卡一直采用 EtherCAT 技術作為所有庫卡機器人控制系統中的系統總線。最新的 KR AGILUS 機器人和 LBR iiwa 輕型機器人的緊湊型控制器也是在 EtherCAT 基礎上實施的。Beckhoff 基于工業以太網的 EtherCAT因而可以作為整個當前庫卡控制系統范圍內的…

KVM虛擬機共享存儲動態遷移與冷遷移

運行環境一、 配置nfs共享服務器二、 配置KVM虛擬化三、 創建橋接網卡四、 配置kvm服務器并實現動態遷移五、 配置冷遷移運行環境KVM虛擬機兩臺&#xff08;linux 7.4&#xff09;IP地址&#xff1a;192.168.80.100&#xff08;KVM01&#xff09;IP地址&#xff1a;192.168.80.…

HALCON示例程序surface_scratch.hdev提取劃痕

小哥哥小姐姐覺得有用點個贊唄&#xff01; HALCON示例程序surface_scratch.hdev提取劃痕 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 dev_update_off () dev_close_window () read_image (Image, ‘surface_scratch’) get_image_size (Image, Width…

MySQL--SQL中的安全問題

---恢復內容開始--- 1) SQL 注入簡介 SQL 注入(SQL Injection) 就是利用某些數據庫的外部接口將用戶數據插入到實際的數據庫操作語言(SQL)當中&#xff0c;從而達到入侵數據庫乃至操作系統的目的。他的產生主要是由程序對用戶輸入的數據沒有進行嚴格的過濾&#xff0c;導致非法…

伺服驅動器的 三環控制 電流環 速度環 位置環

運動伺服一般都是三環控制系統&#xff0c;從內到外依次是電流環速度環位置環。 1、電流環&#xff1a;電流環的輸入是速度環PID調節后的那個輸出&#xff0c;我們稱為“電流環給定”吧&#xff0c;然后呢就是電流環的這個給定和“電流環的反饋”值進行比較后的差值在電流環內做…

理解LSTM/RNN中的Attention機制

轉自&#xff1a;http://www.jeyzhang.com/understand-attention-in-rnn.html&#xff0c;感謝分享&#xff01; 導讀 目前采用編碼器-解碼器 (Encode-Decode) 結構的模型非常熱門&#xff0c;是因為它在許多領域較其他的傳統模型方法都取得了更好的結果。這種結構的模型通常將…

linux下基于jrtplib庫的實時傳送實現

linux 下基于jrtplib庫的實時傳送實現一、RTP 是進行實時流媒體傳輸的標準協議和關鍵技術實時傳輸協議&#xff08;Real-time Transport Protocol&#xff0c;PRT&#xff09;是在 Internet 上處理多媒體數據流的一種網絡協議&#xff0c;利用它能夠在一對一&#xff08;unicas…

[BZOJ2326] [HNOI2011] 數學作業 (矩陣乘法)

Description Input Output Sample Input Sample Output HINT Source Solution 遞推式長這樣&#xff1a;$f[n]f[n-1]*10^kn$ 對于每一段位數個數相同的$n$&#xff08;如$10\sim99,100\sim999,23333\sim66666,1018701389\sim2147483647$&#xff09;&#xff0c;$k$是個定值 然…

HALCON示例程序texture.hdev檢測樹木

小哥哥小姐姐覺得有用點個贊唄&#xff01; HALCON示例程序texture.hdev檢測樹木 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 dev_close_window () Interactive : 0 dev_close_window () read_image (MreutHill, ‘mreut_y’) get_image_size (MreutH…

1、python基礎速成

基礎模塊 def prt(age,name):#函數定義 print("%s is %d 年齡 old"%(name,age)) if __name__"__main__":#程序入口 print("Hello World") prt(45,"gaici") 獲取輸入&#xff1a;使用input()函數 nameinput("you name &#x…