1

テーブルのセルにコンテンツを表示する必要があります。

表は次のとおりです。

<table id="innertable">
                        <thead>
                            <tr class="tablewrapperheader">
                                <th>Status</th>
                                <th>Date Requested</th>
                                <th>Date Time Range</th>
                                <th>Reason</th>
                                <th>Date Approved/Denied</th>
                                <th>Reason Denied</th>
                                <th>Approve/Deny</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr class="odd">
                                <td id="check" class="pending"><img src="../images/icons/36x36/exclamation.gif" alt="exclamation"/>
                                    &nbsp;<span id="checkMsg">Pending</span></td>
                                <td>06/15/2012</td>
                                <td>06/21/2012</td>
                                <td>Medical Checkups</td>
                                <td class="dateApproveDenied"></td>
                                <td class="reasonDenied"></td>
                                <td><img src="../images/icons/128x128/approve.png" class="actionApprove" alt="exclamation" height="16" width="16"/>&nbsp;&nbsp;<img src="../images/icons/128x128/deny.png" class="actionDeny" alt="" height="16" width="16"/></td>
                            </tr>

ユーザーはアクティブまたは拒否をクリックし、拒否する場合は拒否の理由を示す必要があります。クラス名「dateApproveDenied」および「reasonDenied」を使用している尊重されたtdに、拒否の日付と理由を表示する必要があります。私はこの効果を達成するためにJqueryを使用していますが、役に立ちません。

ここに私のjqueryがあります

$(".actionDeny").click(function(){

    var reason = prompt("Write reason for denial.",'');
    var today = new Date();
    var dd = today.getDate();
    var mm = today.getMonth()+1; //js months 0-11
    var yyyy = today.getFullYear();
    if(dd<10){
        dd='0'+dd
    }
    if(mm<10){
        mm='0'+mm
    }
    var today = mm+'/'+dd+'/'+yyyy;
    $(this).closest('td .dateApproveDenied').text(today);
    $(this).closest('td .reasonDenied').text(reason);
});

理由を書くプロンプトが表示されますが、理由と日付が td に表示されません。誰かがそれを正しく設定するのを手伝ってくれませんか。ありがとう

4

1 に答える 1

1

closest を使用して親 tr を取得してから、tds を見つけます。

$(this).closest('tr').find('.dateApproveDenied').text(today);
$(this).closest('tr').find('.reasonDenied').text(reason);

編集

最も近いセレクターもキャッシュできます。

var $tr = $(this).closest('tr');
$tr.find('.dateApproveDenied').text(today);
$tr.find('.reasonDenied').text(reason);
于 2012-04-21T11:49:41.817 に答える