JQuery實現(xiàn)簡單的復(fù)選框樹形結(jié)構(gòu)圖示例【附源碼下載】
本文實例講述了JQuery實現(xiàn)簡單的復(fù)選框樹形結(jié)構(gòu)圖。分享給大家供大家參考,具體如下:
這是自己寫的簡單樹形結(jié)構(gòu)圖,實現(xiàn)的功能有:
1.最左邊的按鈕實現(xiàn)子目錄的隱藏和顯示
2.點擊父節(jié)點的復(fù)選框選中后,父節(jié)點下的所有的子節(jié)點也選中;父節(jié)點未選中,則下面的所有的子節(jié)點也取消選中(全選和全不選)
3.選中一個子節(jié)點時相應(yīng)的父節(jié)點也選中;當(dāng)所有的子節(jié)點都沒有選中時,父節(jié)點也取消選中
這是實現(xiàn)的最簡單的功能。下面來具體的談?wù)劸唧w的實現(xiàn):
1.引入庫
所有的這些操作都是通過JQuery來實現(xiàn)的,所以首先要引入JQuery庫,可以到官網(wǎng)下載JQuery庫,也可以通過CDN的方式來引用,這里我是通過CDN的方式引用的:
<!-- 引入JQuery --> <script src="https://cdn.bootcss.com/jquery/3.0.0-alpha1/jquery.min.js"></script>
2.子目錄的隱藏和顯示
這里我只是做了一個簡單的,可能看起來不是很美觀,我的最左邊放的是一個button按鈕,并且沒有經(jīng)過CSS美化,所以看起來比較丑,不過這都不是重點,重點是我們功能的實現(xiàn),由于我的代碼比較簡單并且注釋我也寫的比較詳細了,所以這里我就不做過多的介紹,直接貼代碼:
<!-- 切換子目錄隱藏或顯示的按鈕 --> <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("+"); } });
簡單說明一下邏輯就是,點擊按鈕后,切換子目錄的隱藏或顯示,然后根據(jù)子目錄的隱藏或顯示狀態(tài),來重新設(shè)置按鈕的顯示'+'或者'-'
3.全選/全不選
// 為所有的父節(jié)點添加點擊事件 $(".tree_node_parent_checkbox").click(function(){ // 獲取父節(jié)點是否選中 var isChange = $(this).prop("checked"); if(isChange){ // 如果選中,則父節(jié)點下的所有的子節(jié)點都選中 // 獲取當(dāng)前checkbox節(jié)點的兄弟節(jié)點下的所有的checkbox子節(jié)點選中 $(this).next().find(".tree_node_child_checkbox").prop("checked", true); }else{ // 未選中,取消全選 // 獲取當(dāng)前checkbox節(jié)點的兄弟節(jié)點下的所有的checkbox子節(jié)點選中 $(this).next().find(".tree_node_child_checkbox").removeAttr("checked"); } });
這里特別注意一下,切換checkbox的選中要用prop()方法,不能用attr(),如果用attr()首次是不能出現(xiàn)我們需要的效果的。關(guān)于prop和attr的區(qū)別可以去官網(wǎng)查看prop介紹JQuery prop 。
4.選中子節(jié)點后父節(jié)點的相應(yīng)變化狀態(tài)
// 為所有的子節(jié)點添加點擊事件 $(".tree_node_child_checkbox").click(function () { // 獲取選中的節(jié)點的父節(jié)點下的所有子節(jié)點選中的數(shù)量 var length = $(this).parent().find(".tree_node_child_checkbox:checked").length; // 判斷當(dāng)前結(jié)點是否選中 if($(this).prop("checked")){ // 選中 // 如果當(dāng)前節(jié)點選中后,所有的選中節(jié)點數(shù)量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"); } } });
主要的代碼就是這么多,其實也沒什么復(fù)雜的。
完整實例代碼點擊此處本站下載。
更多關(guān)于jQuery相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《jQuery操作DOM節(jié)點方法總結(jié)》、《jQuery頁面元素操作技巧匯總》、《jQuery常用插件及用法總結(jié)》、《jQuery表格(table)操作技巧匯總》、《jQuery擴展技巧總結(jié)》、《jQuery常見經(jīng)典特效匯總》及《jquery選擇器用法總結(jié)》
希望本文所述對大家jQuery程序設(shè)計有所幫助。
- jQuery 樹形結(jié)構(gòu)的選擇器
- jQuery EasyUI結(jié)合zTree樹形結(jié)構(gòu)制作web頁面
- jquery實現(xiàn)自定義樹形表格的方法【自定義樹形結(jié)構(gòu)table】
- jQuery 利用ztree實現(xiàn)樹形表格的實例代碼
- jQuery ztree實現(xiàn)動態(tài)樹形多選菜單
- jQuery樹形控件zTree使用小結(jié)
- jquery樹形菜單效果的簡單實例
- jquery實現(xiàn)樹形菜單完整代碼
- 推薦8款jQuery輕量級樹形Tree插件
- jquery ztree實現(xiàn)下拉樹形框使用到了json數(shù)據(jù)
- json+jQuery實現(xiàn)的無限級樹形菜單效果代碼
相關(guān)文章
jQuery實現(xiàn)模擬flash頭像裁切上傳功能示例
這篇文章主要介紹了jQuery實現(xiàn)模擬flash頭像裁切上傳功能,結(jié)合實例形式分析了jQuery圖像剪切與文件傳輸相關(guān)操作技巧,需要的朋友可以參考下2016-12-12基于jquery實現(xiàn)表格內(nèi)容篩選功能實例解析
對于表格來說,當(dāng)數(shù)據(jù)比較多的時候,我們無法一頁一頁的查找,這樣我們就可以進行篩選操作,這篇文章主要為大家詳細介紹了基于jquery實現(xiàn)表格內(nèi)容篩選功能的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-05-05用JQuery在網(wǎng)頁中實現(xiàn)分隔條功能的代碼
在C/S系統(tǒng)中有專門的分隔條控件,很方便實現(xiàn),但在Asp.net中卻沒有。本文介紹了一種使用JQuery技術(shù)實現(xiàn)分隔條的功能2012-08-08jQuery 動態(tài)酷效果實現(xiàn)總結(jié)
jQuery是一個優(yōu)秀的JavaScript框架,可以很好的解決不同瀏覽器兼容的問題,尤其是在ASP.NET MVC下,它的作用更加的凸顯。2009-12-12