I have a tr in a table header that contains several input fields.
Is there a way that by click on one of these input fields I can get the id of the parent table ?
My tr looks like this:
<table id="tableID">
<thead>
<tr>
<th><input type="text" name="input1" id="input1" /></th>
<th><input type="text" name="input2" id="input2" /></th>
<th><input type="text" name="input3" id="input3" /></th>
</tr>
</thead>
<tbody>
// ...
</tbody>
</table>
In the click handler you can use .closest()
$(this).closest('table').attr('id')
$("#tableID").on("click","input[type='text']",function(){
$(this).closest('table').attr('id');
});
reference closest()
You should delegate event to avoid multiple handlers, and then use delegateTarget to target current TABLE:
$('table').on('click', 'input', function (e) {
alert(e.delegateTarget.id);
});
You can use
$('#tdId').click(function(){
$(this).parents('table').attr('id');
});
it works.
来源:https://stackoverflow.com/questions/20175970/get-table-id-by-click-in-td-using-jquery