Question: I'm trying to update a database users table. 
I made an HTML table which contains the data of the users in my database.
this HTML table contains 3 columns and in each row there is a button. when I click this button I should update the users database table with the information contained in the input and select field in the cells of the html table. 
my html code is:

```
<tr>
  <td><input type="text" name ="name"/></td>
  <td>
      <select name="select_job">
         <option value="1"> Engineer </option>
         <option value="2"> Doctor </option>
      </select>
  </td>
  <td><button>update </button></td>
</tr>

```

I tried to get the number of the rows on which the update button was clicked and then to get the data in each column but I failed .
my js code is:

```
$("button").click( function() {
 var $row = $(this).parent().parent(); //tr
  var $columns = $row.find('td');
  $.each($columns, function(i, item) {

   values = values + 'td' + (i ) +':<br/>';

});

 });

```

How can I get the data (inpt text, selected item) in the row on which I clicked the button?

Answer: 
You can use [`closest('tr')`](http://api.jquery.com/closest/) to get the row for current button and use [index()](http://api.jquery.com/index/) to get the index of the row.

**[Live Demo](http://jsfiddle.net/rajaadil/3rU7b/)**

```
$(this).closest('tr').index()

```
May be something like the code below will help you to get the required information.

```
$("button").click(function () {
    var $row = $(this).parent().parent(); //tr
    var $columns = $row.find('td');
    var rowIndex = $row.index();
    var values = new Array();
    for (var i = 0; i < $columns.length - 1; i++) {
        var item = $columns[i];
        values.push($(item).children().val());
    }
    alert(JSON.stringify(values));
});

```

<http://jsfiddle.net/X4mMw/>