Проверьте, находится ли td рядом с последним из tr с помощью jQuery - PullRequest
0 голосов
/ 04 августа 2011

Я выбираю текстовое поле в строке вида сетки.Я знаю, что gridview - это html-таблица.Как я могу узнать, является ли тд, в котором находится текстовое поле, последним тд в тр таблицы с jQuery?

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

Ответы [ 4 ]

1 голос
/ 04 августа 2011

Примерно так в событии для дочернего элемента

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...
}

пример jsfiddle

1 голос
/ 04 августа 2011
<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");
0 голосов
/ 04 августа 2011

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>
0 голосов
/ 04 августа 2011

Вы можете сделать что-то вроде этого:

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/

...