日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

模态对话框和全选反选

發布時間:2023/12/2 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 模态对话框和全选反选 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、目標

  • 制作一個表格,第一行分別為選擇主機名端口
  • 增加一個按鈕,名稱為添加
  • 點擊添加按鈕,出現一個半透明的遮罩層,遮罩層中間有個彈出框
  • 彈出框中有兩個輸入框,分別為主機名端口,還有兩個按鈕,分別為確定取消
  • 點擊取消按鈕,遮罩層和彈出框消失
  • 表格下方增加三個按鈕,分別為 全選取消反選
  • 點擊全選則選擇這一列的選擇框全部選上,取消則全部不選擇,反選則和已選狀態相反。

  效果:

  

二、事例

  2.1 制作表格和添加按鈕  

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body><div><!--添加按鈕--><input type="button" value="添加" /></div><div><!--表格--><table border="1"><thead><tr><th>選擇</th><th>主機名</th><th>端口</th></tr></thead><tbody><tr><td><input type="checkbox" /></td><td>1.1.1.1</td><td>191</td></tr><tr><td><input type="checkbox" /></td><td>1.1.1.2</td><td>192</td></tr><tr><td><input type="checkbox" /></td><td>1.1.1.3</td><td>193</td></tr></tbody></table></div> </body> </html>

  

  2.2 實現遮罩層和彈出框 

# body 中html<!--遮罩層--><div class="c1"></div><!--彈出框--><div class="c2"><div style="margin-left: 120px; margin-top: 15px"><span>主機名:</span><input type="text" /></div><div style="margin-left: 120px; margin-top: 18px"><span>端口號:</span><input type="text" /></div><div style="margin-left: 200px; margin-top: 20px"><input type="button" value="確定"><input type="button" value="取消"></div></div># css樣式 <style>.c1{position: fixed;top: 0;right: 0;bottom: 0;left: 0;background-color: black;opacity: 0.6;z-index: 9;}.c2{position: fixed;height: 150px;width: 500px;top: 50%;left: 50%;margin-top: -200px;margin-left: -250px;background-color: white;z-index: 10;} </style>

  效果:

  

  2.3 實現js,點擊添加出現遮罩層和彈出框,點擊取消則沒有

  利用display:none可以是標簽消失的特性,為遮罩層和彈出框都在增加一個hidden的CSS樣式。修改原理的HTML代碼 

# 增加一個CSS樣式 .hidden{display: none;}# 修改遮罩層和彈出框 <!--遮罩層--> <div id="i1" class="c1 hidden"> <!--彈出框--> <div id="i2" class="c2 hidden"># 為添加和取消按鈕增加一個onclick事件 <!--添加按鈕--> <input type="button" value="添加" onclick="AddModel();" /><input type="button" value="取消" onclick="HideModel();" /># 添加JS代碼 <!--JS內容--><script>function AddModel() {document.getElementById('i1').classList.remove('hidden');document.getElementById('i2').classList.remove('hidden');}function HideModel() {document.getElementById('i1').classList.add('hidden');document.getElementById('i2').classList.add('hidden');}</script>

  實現效果:點擊添加按鈕則出現遮罩層和彈出框,點擊取消則恢復原樣

  2.4 實現全選、取消和反選的功能

?  (1)增加3個按鈕功能

<!--全選、取消和反選--><div style="padding: 5px 0"><input type="button" value="全選" onclick="ChooseAll();" /><input type="button" value="取消" onclick="CancelAll();" /><input type="button" value="反選" onclick="ReverseAll();" /></div>

  

  (2)為<tbody>增加一個id屬性 

<tbody id="tb">

  (3)編輯JS 

// 全選function ChooseAll() {// tag獲取標簽<tbody>var tag = document.getElementById('tb');// 通過children獲取所有子標簽組成的數組var t_list = tag.children;/*循環t_list,先獲取tr即每行再獲取每行中的第一個元素,即第一個td再獲取第一個td中的第一個屬性checkbox*/for(var i=0;i<t_list.length;i ){var check = t_list[i].children[0].children[0];// 設置checken,true為選中check.checked = true}}// 取消function CancelAll() {var tag = document.getElementById('tb');var t_list = tag.children;for(var i=0;i<t_list.length;i ){var check = t_list[i].children[0].children[0];check.checked = false}}// 反選function ReverseAll() {var tag = document.getElementById('tb');var t_list = tag.children;for(var i=0;i<t_list.length;i ){var check = t_list[i].children[0].children[0];if(check.checked){check.checked = false;}else {check.checked = true;}}}

  

  完整代碼:

  

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title><style>.hidden{display: none;}.c1{position: fixed;top: 0;right: 0;bottom: 0;left: 0;background-color: black;opacity: 0.6;z-index: 9;}.c2{position: fixed;height: 150px;width: 500px;top: 50%;left: 50%;margin-top: -200px;margin-left: -250px;background-color: white;z-index: 10;}</style> </head> <body><div><!--添加按鈕--><input type="button" value="添加" onclick="AddModel();" /></div><div><!--表格--><table border="1"><thead><tr><th>選擇</th><th>主機名</th><th>端口</th></tr></thead><tbody id="tb"><tr><td><input type="checkbox" /></td><td>1.1.1.1</td><td>191</td></tr><tr><td><input type="checkbox" /></td><td>1.1.1.2</td><td>192</td></tr><tr><td><input type="checkbox" /></td><td>1.1.1.3</td><td>193</td></tr></tbody></table></div><!--遮罩層--><div id="i1" class="c1 hidden"></div><!--彈出框--><div id="i2" class="c2 hidden"><div style="margin-left: 120px; margin-top: 15px"><span>主機名:</span><input type="text" /></div><div style="margin-left: 120px; margin-top: 18px"><span>端口號:</span><input type="text" /></div><div style="margin-left: 200px; margin-top: 20px" /><input type="button" value="確定"><input type="button" value="取消" onclick="HideModel();" /></div></div><!--全選、取消和反選--><div style="padding: 5px 0"><input type="button" value="全選" onclick="ChooseAll();" /><input type="button" value="取消" onclick="CancelAll();" /><input type="button" value="反選" onclick="ReverseAll();" /></div><!--JS內容--><script>function AddModel() {document.getElementById('i1').classList.remove('hidden');document.getElementById('i2').classList.remove('hidden');}function HideModel() {document.getElementById('i1').classList.add('hidden');document.getElementById('i2').classList.add('hidden');}// 全選function ChooseAll() {// tag獲取標簽<tbody>var tag = document.getElementById('tb');// 通過children獲取所有子標簽組成的數組var t_list = tag.children;/*循環t_list,先獲取tr即每行再獲取每行中的第一個元素,即第一個td再獲取第一個td中的第一個屬性checkbox*/for(var i=0;i<t_list.length;i ){var check = t_list[i].children[0].children[0];// 設置checken,true為選中check.checked = true}}// 取消function CancelAll() {var tag = document.getElementById('tb');var t_list = tag.children;for(var i=0;i<t_list.length;i ){var check = t_list[i].children[0].children[0];check.checked = false}}// 反選function ReverseAll() {var tag = document.getElementById('tb');var t_list = tag.children;for(var i=0;i<t_list.length;i ){var check = t_list[i].children[0].children[0];if(check.checked){check.checked = false;}else {check.checked = true;}}}</script> </body></html>

  


更多專業前端知識,請上 【猿2048】www.mk2048.com

總結

以上是生活随笔為你收集整理的模态对话框和全选反选的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。