I have an event when a table cell is clicked that is fired properly. Then, I am trying to get the row index of that selected cell, but I always get “undefined”.
I see the correct rowIndex value from $this object, but how to get it? Seems a basic question but I tried different syntax and javascript and jquery methods and I am not able to get the value.
html:
Advertisement
Answer
rowIndex
is a property of the <tr>
so you’ll want to navigate up the DOM hierarchy to retrieve it.
jQuery($ => { $("td").on("click", function() { const selectedToolTableIndex = this.closest("tr").rowIndex console.log("row index", selectedToolTableIndex) }) })
td { cursor: pointer; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <table border="1"> <tr> <td>Row #1</td> </tr> <tr> <td>Row #2</td> </tr> <tr> <td>Row #3</td> </tr> </table>
If you need Internet Explorer support, use this instead as IE does not support Element.closest()
var selectedToolTableIndex = $(this).closest("tr").prop("rowIndex")
This will use jQuery’s .closest()
to navigate to the parent <tr>
, then retrieve the rowIndex
property via .prop()
.