使用jQuery检查td是否是tr的最后一个

时间:2011-08-04 15:42:07

标签: jquery html-table

我在gridview行中选择一个文本框。 我知道gridview是一个html表。 我怎样才能知道文本框所在的td是否是jQuery表中tr的最后一个td?

<asp:GridView runat="server">
<Columns>
    <asp:TemplateField HeaderText="Standardpreis">
        <ItemTemplate>
            <asp:TextBox runat="server" ID="valueTxt"></asp:TextBox>
        </ItemTemplate>
    </asp:TemplateField>            
</Columns>

4 个答案:

答案 0 :(得分:1)

对于子元素

的事件,这样的事情
var $that = $(this),
    $td = $that.closest('td'),
    trChildrenCount = $td.parent().children().length,
    tdBeforeLast = trChildrenCount - 1,
    tdIndex = $td.index() + 1; // get 1-based index

if (tdBeforeLast === tdIndex) {
    console.log('next to last td');
    // do stuff...
}

example jsfiddle

答案 1 :(得分:1)

<script type="text/javascript">
    $(function () {

        var $td = $("#second"); // swap this to #first to test

            if ($td.index() === $td.siblings().length - 1) {
                console.log("2nd last");
            } else {
                console.log("not 2nd last");
            }

    });
</script>
<table>
    <tr>
        <td id="first">first</td>
        <td id="second">second</td>
        <td id="third">third</td>
    </tr>
</table>

在您的示例中,如果您正在寻找特定的文本框,最简单的方法是将CssClass放在文本框中,并查找其父文件。在这种情况下,$ td的选择器如下所示:

var $td = $(".someTextBoxClass").closest("td");

答案 2 :(得分:0)

你可以这样做:

var td = $(selector); // The 'td' you want
var tdLength = td.closest('tr').children('td').length; // Get the number of tds in the tr
if(td.index()+1 == tdLength-1){ // Is it second to last (.index() is zero-based)
}

演示:http://jsfiddle.net/Y5s2p/

答案 3 :(得分:0)

<强>的JavaScript

$('#test td').click(function(){

  var lng = $('td', $(this).parent().parent()).size();
 var myIndex = $('td', $(this).parent().parent()).index(this);
 if(lng-1 == myIndex+1)
    console.log('next to the last');
});

<强> HTML

<table id="test">

    <tbody><tr><td>First Row</td></tr>
    <tr><td>Middle Row</td></tr>
    <tr><td>Last Row</td></tr>

  </tbody></table>