1

スパンが表示されているかどうかを確認する小さな .each() ループがあります。チェックボックスがチェックされているかどうか、そのスパンタグ内にないかどうかを確認したいと思います。

機能は

function processReports(){
    $("#processedReports").html('');
    var repName = $("#reviewType").val();   
    var divHTML = "<table style='width: 300px;'><tr><td style='width:30%; text-align:left; font-weight:bold;'>Report</td><td style='font-weight:bold; width:50%; text-align:right; padding-right:4px;'>Date/Time Run</td><td style='font-weight:bold;'>Progress</td></tr>";
    var d = new Date();
    var strDate =  (d.getMonth()+1) + "/" + d.getDate() + "/" + d.getFullYear();
    var strTime = d.toLocaleTimeString();
    $("#reportChecks span:visible").each(function(){
        var reportName = $(this).attr("reportType");
        **if($('input.checkbox').is(':checked')){**
            divHTML += "<tr><td style='width:30%; text-align:left;' class='" + reportName +"' advID='" + $(this).text() + "'>" + reportName + "</td><td style='width:50%; text-align:right; padding-right:4px;'>" + strDate + "," + strTime + "</td><td><a href='/Applications/help/Reports/Prospect_reports/Prospect1ClickReview.pdf' target='_blank'>View</a></td></tr>";
        }
        //alert($(this).text());
    });
    divHTML += "</table>";
    $("#processedReports").prepend(divHTML);
    $("#processedReports").show();
    $("#IndReports").show();
}

基本的に if($('input.checkbox').is('checked')){...... は機能しません。span タグにはチェックボックスが 1 つしかないため、その要素がチェックされているかどうかを知りたいだけです。そうでない場合は divHTML を追加し、ループを続行してください。

4

2 に答える 2

2

.prop()値で確認します。

if($(this).find('.checkbox').prop('checked'))

割り当てがない場合、これは値のブール値を返します。また、次よりも高速です.is(':checked')

jsPerf の比較.is(':checked').prop('checked')

もちろん、チェックボックスが 1 つしかない場合は、vanilla JS の方法を使用できます。

if($(this).find('.checkbox')[0].checked)

これは、提供されている jsPerf でも見られるように、大幅に高速化されています。

于 2013-10-14T16:17:39.723 に答える
1

その中の入力を取得するには、現在のスパン オブジェクトの子孫を検索する必要があります。セレクターのコンテキストで使用find()または渡すことができます。thisコンテキストを使用すると、find() に変換されるため、find を使用することをお勧めします。.checkbox は、アクセスしようとしているチェックボックス要素のクラスであると想定しています。

find() の使用

if($(this).find('input.checkbox').is(':checked'))

がクラスcheckboxではなく型の場合

if($(this).find(':checkbox').is(:checked'))

コンテキストの使用

if($('input.checkbox', this).is(':checked'))
于 2013-10-14T16:16:19.793 に答える