ajax請求數據之後在已經有的數據前面打對勾的方法
阿新 • • 發佈:2017-11-03
ora 層遍歷 res say ipy wp8 rhs nsf nib
今天遇到這人一個需求:
選擇一部分人,在點擊確定的時候添加到對應的div中,也就是添加到對應的表單下面,當再次查詢的時候需要在已經選過的人的復選框前面打傷對勾。
點確定添加到:
再次打開模態框:
也就是對已經選過的數據進行標記,提醒用戶已經選過。
思路:
已經選過的人有唯一的標記ID,獲取到全部的ID之後組成一個數組,遍歷此數組去尋找所有數據中ID相等的,找到前面的復選框打傷對勾。
第一種:一層遍歷
// 驗證已經選擇的題,如果為已經選中的打上對勾 function validateCheckedQuestion() {var $leftIds = $(".el_addEPleft").find(".btwenzi")// 查到左邊隱藏的ID元素 var leftIds = [];// 獲取到左邊已經選擇題的題目 for (var i = 0, length_1 = $leftIds.length; i < length_1; i++) { leftIds[i] = $($leftIds[i]).text(); } var $rightIds = $(".el_addEPtiku").find(".tm_btitlt")// 查到右邊題的題目 // 根據左邊的元素與右邊查找如果已經個選中的話打上對勾for (var k = 0, length_2 = leftIds.length; k < length_2; k++) { for (var lx = 0, length_3 = $rightIds.length; lx < length_3; lx++) { if (leftIds[k] == ($($rightIds[lx]).text())) { $($rightIds[lx]).parent().siblings(".el_tiku_checkedButton").attr("checked", "ehecked"); break; } } } }
第二種:兩層遍歷
/** * 校驗哪些已經選中,用於判斷員工再次選擇員工的時候已經選中的checked為選中 1.獲取外部已經選中添加到框中的ID數組outEmployeeIds * 2.獲取內部多選框集合,判斷其value值,如果在outEmployeeIds中能找見將其checked屬性設為checked */ var checkOutHasChecked = function() { var outEmployees = $("#department_employee_out").find(".el_empList"); var outEmployeeIds = [];// 標記外面選中的已經ID // 初始化外面ID數組 for (var i = 0, length = outEmployees.length; i < length; i++) { outEmployeeIds[i] = outEmployees[i].id;// 獲取到外部的ID } var modalOutEmployees = $("#outEmployeeTable").find(".el_checks");// 查找模態框所有的多選框 for (var k = 0, length_1 = outEmployeeIds.length; k < length_1; k++) { for (var j = 0, length_2 = modalOutEmployees.length; j < length_2; j++) { if (outEmployeeIds[k] == modalOutEmployees[j].value) { modalOutEmployees[j].checked = "checked";// 修改元素的選中屬性為選中 break; } } } }
ajax請求數據之後在已經有的數據前面打對勾的方法