簡體   English   中英

遍歷我的表,我如何知道該復選框是否已選中?

[英]Looping through my table, how do I know if the checkbox is checked?

我如何建立表格:

for (var i = 0; i < result.length; i++) {
    var item = result[i];

    // Firma, BygningselementNavn, BrugerNavn, EmailAdresse, Telefon
    tbody = tbody + '<tr class="modtagerRow"><td>' + item.FirmaNavn + '</td>' +
                                '<td>' + item.BygningselementNavn + '</td>' +
                                '<td>' + item.BrugerNavn + '</td>' +
                                '<td>' + item.EmailAdresse + '</td>' +
                                '<td>' + item.Telefon + '</td>'
    // Medtag
    tbody = tbody + '<td style="text-align:center"><input type="checkbox" 
            value="' + item.BygningselementId + '_' + item.BrugerId + '" 
            name="BygningsElementBrugerComboIds"></td>' + '</tr>';
}
$('#ModtagereTable tbody').append(tbody)

我如何嘗試遍歷行並將CSS類添加到選中了該復選框的行中。

1)我將索引帶到控制台,但無法為所有選中的復選框設置if條件。

2)另外,在添加類.hideForSendMailConfirm時,我不確定是否可以$( this )還是應該使用其他.hideForSendMailConfirm

// Looping rows in table
$( ".modtagerRow" ).each(function(index, element) {
    console.log('index: ' + index);
    // if
    if (element.checked) {
        $( this ).addClass(".hideForSendMailConfirm");
    }
});

嘗試這個

$('.modtagerRow input:checked').closest('tr').addClass('hideForSendMailConfirm');

將類添加到未檢查的行。 您可以使用.not()

$('.modtagerRow input[type="checkbox"]').not(':checked').closest('tr').addClass('hideForSendMailConfirm');

您的代碼:

$(".modtagerRow").each(function (index, element) {
    if (element.checked) {
        $(this).addClass(".hideForSendMailConfirm");
    }
});

實際上遍歷具有modtagerRow類的表行,並且表行沒有任何checked屬性,因此您的代碼無法正常工作。

您可以執行以下操作:

$(".modtagerRow :checkbox").each(function (index, element) {
    if (element.checked) {
        $(this).closest(".modtagerRow").addClass("hideForSendMailConfirm");
    }
});

這將遍歷表行內的所有checkbox元素,並將檢查是否已選中並添加適當的hideForSendMailConfirm類。

您的代碼中還有一個問題:

.addClass(".hideForSendMailConfirm");

為了添加一個類,不需要添加一個. 作為前綴,我們只傳遞類名。

但是再次不需要在這里循環,您可以執行以下操作:

 $(".modtagerRow :checkbox:checked").closest('tr').addClass('hideForSendMailConfirm');

因此,當我們調用jQuery對象的方法時,傳遞給$()的選擇器引用的元素將自動且隱式地循環通過。 因此,我們通常可以避免顯式迭代,例如此處的each()循環。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM