1. 程式人生 > >ajax請求數據之後在已經有的數據前面打對勾的方法

ajax請求數據之後在已經有的數據前面打對勾的方法

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請求數據之後在已經有的數據前面打對勾的方法