简体   繁体   中英

getting diagonal and vertical adjacent cells of a table in jquery

I have a 4X4 table. I want to get to get adjacent that are vertical, and diagonal on the top on bottom. I don't have a problem getting them when the cell i click on is around the edges because i can use something like this.

above = $(that).parent().prev().children().first()
below = $(that).parent().prev().children().last()
diagonalLeft = $(that).parent().children().last().prev()
diagonalRight = $(that).parent().children().first().next()

But when i have one of these cases, when I can't use the first or last one, I don't know what to do. I can't figure out the logic for it.

You just have to count backwards to tell what column you're currently in.

var $that = $('td.yourActiveTD')

    , rowNum = $that.parent().prevAll('tr').length
    , colNum = $that.prevAll('td').length

    , above = $that    // td
        .parent()      // tr
        .parent()      // table or tbody
        .children('tr')
        .eq(rowNum - 1) // the row above this one
        .children('td')
        .eq(colNum)    // in the same column as this
;

From that, you should be able to get whichever cell you want just by changing the .eq() lines.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM