1. 程式人生 > 程式設計 >jQuery列表動態增加和刪除的實現方法

jQuery列表動態增加和刪除的實現方法

通過jQuery實現列表的資料動態新增與刪除

程式碼演示

演示地址

背景隔行換色

CSS程式碼

/* 設定奇數行顏色 */
.even {
 background-color: dodgerblue;
}

/* 設定偶數行背景顏色 */
.odd {
 background-color: pink;
}

JavaScript程式碼

// 設定奇數偶數行的背景顏色
$("tr:even").addClass("even");
$("tr:odd").addClass("odd");

全選和取消全選事件

//設定全選和取消全選事件
$("thead th:first").append("<span id='show'></span>")
$("thead input:checkbox").click(function () {
 if ($(this).prop("checked")) {
 $("tbody input:checkbox").prop("checked",true);
 $("#show").replaceWith("<span id='show'>已全選</span>");
 } else {
 $("tbody input:checkbox").prop("checked",false);
 $("#show").replaceWith("<span id='show'>已取消全選</span>");
 }
});

刪除

//給當前和未來元素新增繫結事件
$("tbody").on("click","td>a:nth-child(2)",function () {
 if (confirm("確定要刪除嗎?")) {
 //取消背景顏色
 $("tr:even").removeClass("even");
 $("tr:odd").removeClass("odd");
 //移除tr
 $(this).parent().parent().remove()
 //新增背景顏色
 $("tr:even").addClass("even");
 $("tr:odd").addClass("odd");
 }
});

新增

HTML程式碼

<!--新增列表-->
<div>
 <form>
 <table>
  <tr>
  <td>序號</td>
  <td><input type="text"/></td>
  </tr>
  <tr>
  <td>分類名</td>
  <td><input type="text"/></td>
  </tr>
  <tr>
  <td>分類描述</td>
  <td><input type="text"/></td>
  </tr>
  <input type="reset" value="確定"/>
  <input type="reset" value="取消"/>
 </table>
 </form>
</div>

CSS程式碼

/*預設隱藏新增頁面*/
div:nth-child(2) {
 display: none;
}

JavaScript程式碼

// 點選"新增"按鈕顯示新增列表
$("div:nth-child(1)>input:button").click(function () {
 $("div:nth-child(2)").show("slow");
});
//點選"取消"按鈕隱藏div
$("div:nth-child(2) :reset:last").click(function () {
 $("div:nth-child(2)").hide("slow");
});
//點選"確定"按鈕,提交表單
$("div:nth-child(2) :reset:first-child").click(function () {
 $("div:nth-child(1) tbody").append(" <tr>\n" +
 "  <td><input type=\"checkbox\"/></td>\n" +
 "  <td></td>\n" +
 "  <td></td>\n" +
 "  <td></td>\n" +
 "  <td><a href=\"#\">修改</a>&nbsp<a href=\"#\">刪除</a></td>\n" +
 " </tr>");

 // 獲取文字框節點
 var textDom = $("div:nth-child(2) :text");
 // 獲取td節點
 var tdDom = $("div:nth-child(1) tr:last td");
 for (var i = 0; i < textDom.length; i++) {
 //獲取文字框內容
 var content = textDom.eq(i).val();
 // 把文字框獲取的內容寫入到td內
 tdDom.eq(i + 1).text(content);
 }
 //新增背景顏色
 $("tr:even").addClass("even");
 $("tr:odd").addClass("odd");
 $("div:nth-child(2)").hide("slow");
});

完整程式碼

HTML程式碼

<body>
<div>
 <input type="button" value="新增"/>
 <table cellpadding="0px" cellspacing="0px">
 <thead>
 <tr>
  <th><input type="checkbox"/></th>
  <th>序號</th>
  <th>分類名</th>
  <th>分類描述</th>
  <th>操作</th>
 </tr>
 </thead>
 <tbody>
 <tr>
  <td><input type="checkbox"/></td>
  <td>1</td>
  <td>1</td>
  <td>1</td>
  <td><a href="#">修改</a>&nbsp<a href="#">刪除</a></td>
 </tr>
 <tr>
  <td><input type="checkbox"/></td>
  <td>2</td>
  <td>2</td>
  <td>2</td>
  <td><a href="#">修改</a>&nbsp<a href="#">刪除</a></td>
 </tr>
 <tr>
  <td><input type="checkbox"/></td>
  <td>3</td>
  <td>3</td>
  <td>3</td>
  <td><a href="#">修改</a>&nbsp<a href="#">刪除</a></td>
 </tr>
 <tr>
  <td><input type="checkbox"/></td>
  <td>4</td>
  <td>4</td>
  <td>4</td>
  <td><a href="#">修改</a>&nbsp<a href="#">刪除</a></td>
 </tr>
 </tbody>
 </table>
</div>

<!--新增列表-->
<div>
 <form>
 <table>
  <tr>
  <td>序號</td>
  <td><input type="text"/></td>
  </tr>
  <tr>
  <td>分類名</td>
  <td><input type="text"/></td>
  </tr>
  <tr>
  <td>分類描述</td>
  <td><input type="text"/></td>
  </tr>
  <input type="reset" value="確定"/>
  <input type="reset" value="取消"/>
 </table>
 </form>
</div>
</body>

CSS程式碼

table,th,td {
 border: 1px solid black;
 }

 th,td {
 width: 120px;
 height: 40px;
 line-height: 40px;
 text-align: center;
 }

 /* 設定奇數行顏色 */
 .even {
 background-color: dodgerblue;
 }

 /* 設定偶數行背景顏色 */
 .odd {
 background-color: pink;
 }

 /* 預設隱藏新增頁面*/
 div:nth-child(2) {
 display: none;
 }

JavaScript程式碼

<script>
 $(function () {
 // 設定奇數偶數行的背景顏色
 $("tr:even").addClass("even");
 $("tr:odd").addClass("odd");

 //設定全選和取消全選事件
 $("thead th:first").append("<span id='show'></span>")
 $("thead input:checkbox").click(function () {
  if ($(this).prop("checked")) {
  $("tbody input:checkbox").prop("checked",true);
  $("#show").replaceWith("<span id='show'>已全選</span>");
  } else {
  $("tbody input:checkbox").prop("checked",false);
  $("#show").replaceWith("<span id='show'>已取消全選</span>");
  }
 });

 //新增商品
 $("div:nth-child(1)>input:button").click(function () {
  $("div:nth-child(2)").show("slow");
 });

 //"取消" 按鈕
 $("div:nth-child(2) :reset:last").click(function () {
  $("div:nth-child(2)").hide("slow");
 });

 //"確定" 按鈕
 $("div:nth-child(2) :reset:first-child").click(function () {
  $("div:nth-child(1) tbody").append(" <tr>\n" +
  "  <td><input type=\"checkbox\"/></td>\n" +
  "  <td></td>\n" +
  "  <td></td>\n" +
  "  <td></td>\n" +
  "  <td><a href=\"#\">修改</a>&nbsp<a href=\"#\">刪除</a></td>\n" +
  " </tr>");

  // 獲取文字框節點
  var textDom = $("div:nth-child(2) :text");
  // 獲取td節點
  var tdDom = $("div:nth-child(1) tr:last td");
  for (var i = 0; i < textDom.length; i++) {
  //獲取文字框內容
  var content = textDom.eq(i).val();
  // 把文字框獲取的內容寫入到td內
  tdDom.eq(i + 1).text(content);
  }
  //新增背景顏色
  $("tr:even").addClass("even");
  $("tr:odd").addClass("odd");
  $("div:nth-child(2)").hide("slow");
 });

 //給當前和未來元素新增繫結事件
 $("tbody").on("click",function () {
  if (confirm("確定要刪除嗎?")) {
  //取消背景顏色
  $("tr:even").removeClass("even");
  $("tr:odd").removeClass("odd");
  //移除tr
  $(this).parent().parent().remove()
  //新增背景顏色
  $("tr:even").addClass("even");
  $("tr:odd").addClass("odd");
  }
 });

 });
</script>

總結

到此這篇關於jQuery列表動態增加和刪除實現方法的文章就介紹到這了,更多相關jQuery列表動態增加和刪除內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!