小編給大家分享一下JQuery如何實現簡單的復選框樹形結構圖,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都網站制作、成都做網站的關注點不是能為您做些什么網站,而是怎么做網站,有沒有做好網站,給創(chuàng)新互聯一個展示的機會來證明自己,這并不會花費您太多時間,或許會給您帶來新的靈感和驚喜。面向用戶友好,注重用戶體驗,一切以用戶為中心。
具體如下:
這是自己寫的簡單樹形結構圖,實現的功能有:
1.最左邊的按鈕實現子目錄的隱藏和顯示
2.點擊父節(jié)點的復選框選中后,父節(jié)點下的所有的子節(jié)點也選中;父節(jié)點未選中,則下面的所有的子節(jié)點也取消選中(全選和全不選)
3.選中一個子節(jié)點時相應的父節(jié)點也選中;當所有的子節(jié)點都沒有選中時,父節(jié)點也取消選中
這是實現的最簡單的功能。下面來具體的談談具體的實現:
1.引入庫
所有的這些操作都是通過JQuery來實現的,所以首先要引入JQuery庫,可以到官網下載JQuery庫,也可以通過cdn的方式來引用,這里我是通過CDN的方式引用的:
<!-- 引入JQuery --> <script src="https://cdn.bootcss.com/jquery/3.0.0-alpha1/jquery.min.js"></script>
2.子目錄的隱藏和顯示
這里我只是做了一個簡單的,可能看起來不是很美觀,我的最左邊放的是一個button按鈕,并且沒有經過CSS美化,所以看起來比較丑,不過這都不是重點,重點是我們功能的實現,由于我的代碼比較簡單并且注釋我也寫的比較詳細了,所以這里我就不做過多的介紹,直接貼代碼:
<!-- 切換子目錄隱藏或顯示的按鈕 --> <div class="div_inline"><input type="button" value="-" class="tree_node_toggle_button"></div>
上面是按鈕,下面是按鈕的點擊事件:
// 為所有的切換按鈕添加點擊事件 $(".tree_node_toggle_button").click(function () { // 獲取需要隱藏或顯示的節(jié)點 var $toggle_node = $(this).parent().next().find(".tree_node_child"); $toggle_node.toggle(); // 切換隱藏或顯示 // 切換按鈕的顯示 if($toggle_node.is(":visible")){ $(this).val("-"); }else{ $(this).val("+"); } });
簡單說明一下邏輯就是,點擊按鈕后,切換子目錄的隱藏或顯示,然后根據子目錄的隱藏或顯示狀態(tài),來重新設置按鈕的顯示'+'或者'-'
3.全選/全不選
// 為所有的父節(jié)點添加點擊事件 $(".tree_node_parent_checkbox").click(function(){ // 獲取父節(jié)點是否選中 var isChange = $(this).prop("checked"); if(isChange){ // 如果選中,則父節(jié)點下的所有的子節(jié)點都選中 // 獲取當前checkbox節(jié)點的兄弟節(jié)點下的所有的checkbox子節(jié)點選中 $(this).next().find(".tree_node_child_checkbox").prop("checked", true); }else{ // 未選中,取消全選 // 獲取當前checkbox節(jié)點的兄弟節(jié)點下的所有的checkbox子節(jié)點選中 $(this).next().find(".tree_node_child_checkbox").removeAttr("checked"); } });
這里特別注意一下,切換checkbox的選中要用prop()方法,不能用attr(),如果用attr()首次是不能出現我們需要的效果的。關于prop和attr的區(qū)別可以去官網查看prop介紹JQuery prop 。
4.選中子節(jié)點后父節(jié)點的相應變化狀態(tài)
// 為所有的子節(jié)點添加點擊事件 $(".tree_node_child_checkbox").click(function () { // 獲取選中的節(jié)點的父節(jié)點下的所有子節(jié)點選中的數量 var length = $(this).parent().find(".tree_node_child_checkbox:checked").length; // 判斷當前結點是否選中 if($(this).prop("checked")){ // 選中 // 如果當前節(jié)點選中后,所有的選中節(jié)點數量1,選中父節(jié)點 if(length == 1){ // 選中父節(jié)點 $(this).parent().prev().prop("checked", true); } }else{ // 節(jié)點未選中 if(length == 0){ // 取消父節(jié)點的選中狀態(tài) $(this).parent().prev().removeAttr("checked"); } } });
主要的代碼就是這么多,其實也沒什么復雜的。
jquery是一個簡潔而快速的JavaScript庫,它具有獨特的鏈式語法和短小清晰的多功能接口、高效靈活的css選擇器,并且可對CSS選擇器進行擴展、擁有便捷的插件擴展機制和豐富的插件,是繼Prototype之后又一個優(yōu)秀的JavaScript代碼庫,能夠用于簡化事件處理、HTML文檔遍歷、Ajax交互和動畫,以便快速開發(fā)網站。
以上是“JQuery如何實現簡單的復選框樹形結構圖”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯行業(yè)資訊頻道!
當前標題:JQuery如何實現簡單的復選框樹形結構圖
網頁URL:http://jinyejixie.com/article32/gpeosc.html
成都網站建設公司_創(chuàng)新互聯,為您提供虛擬主機、企業(yè)網站制作、移動網站建設、自適應網站、微信小程序、做網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯