我不能得到以前的TD

时间:2013-11-13 08:21:22

标签: javascript jquery html knockout.js html-table

我知道已被问过数百次,但我找不到办法获得之前的td - 可能是因为我是一个jquery初学者。

这是我的代码:

findOverdue = function () {
  $("tbody").find("tr").each(function () {
    var paymentDate = $(this).find('td.paymentDate').text();
    var paymentDateTest = $(this).find('td.paymentDate').prev('td').text();
    var currentDate = $(this).find('td.currentDate').text();
    var isInitial = $(this).find('td.isIntial').text();
    var monthlyInstalment = $(this).find('td.monthlyInst').text();
    var penaltySize = $(this).find('td.penaltyPercent').text();
    var lastUpdated = $(this).find('td.lastUpdated').text();

    console.log("paymentDateTest: " + paymentDateTest);
  });
};

现在我试图将以前的td值添加到paymentDateTest变量中,但没有运气。我尝试了几种没有成功的组合。控制台日志没有显示任何内容。我知道我错过了一些非常小的东西,但我无法发现它。

修改

HTML表格:

<table class="dataTable" id="repaymentShedule">
            <thead>
                <tr>
                    <th>1</th>
                    <th>2</th>
                    <th>3</th>
                    <th>3</th>
                    <th>4</th>
                    <th>5</th>
                    <th>6</th>
                    <th>7</th>
                    <th>8</th>
                    <th>9</th>
                    <th style="display: none;">10</th>
                    <th style="display: none;">11</th>
                    <th>12</th>
                </tr>
            </thead>
            <tbody data-bind="foreach: creditDetails">
                <tr>
                    <td class="paymentDate" data-bind="text: dateOfPayment"></td>
                    <td class="startBalance" data-bind="text: beginingBalance"></td>                        
                    <td class="monthlyInt" data-bind="text: monthlyInterest"></td>
                    <td class="principal"><input data-bind="value: princpalPayment"></input></td>
                    <td class="monthlyInst" data-bind="text: monthlyInstallment"></td>
                    <td class="ammountToPay" data-bind="text: ammountToPay"></td>
                    <td class="remainingBalance" data-bind="text: endingBalance"></td>
                    <td class="paid"><input type="checkbox" data-bind="checked: isPaid, disable: isPaid, click: testFunc, value: true"></td> <!-- value: true moje da ne e nujno -->
                    <td class="currentDate" data-bind="text: currentDate"></td>
                    <td class="penalty" data-bind="text: penalty"></td>
                    <td class="isIntial" data-bind="text: isIntial" style="display: none;"></td>    
                    <td class="penaltyPercent" data-bind="text: penaltyPercent" style="display: none;"></td>    
                    <td class="lastUpdated" data-bind="text: lastUpdated"></td>             
                </tr>
            </tbody>
        </table>

3 个答案:

答案 0 :(得分:1)

试试这个,如果你已经立即在td之前

var paymentDateTest = $(this).find('td.paymentDate').prev().text();

答案 1 :(得分:1)

我创建了快速jsfiddle,看起来像

 alert($('.prevDate').prev('td').text())

正在运作。

答案 2 :(得分:0)

我一直在寻找:

var paymentDateTest = $(this).prev().find('td.paymentDate').text();

非常感谢Roko C. Buljan帮助我!