当用户点击'号码'专栏我希望能够获得名称'列值在同一行中。例如,如果我点击' 999'我希望能够得到大卫。
<button class="btn" onclick="save_data_A()" id="per-btn">
Next <i class="fas fa-arrow-right"></i>
</button>
function save_data_A() {
$("#per-btn").addClass("disabled");
var fileInput = document.getElementById('file');
var file = fileInput.files[0];
$("#frmdata_A").validate({
rules: {
val_phone: {
required: true,
minlength: 10,
number: true,
maxlength: 10
},
file: "required",
},
messages: {
val_phone: "Enter valid Phone no",
file: "Upload an image",
},
submitHandler: function(form) {
alert('hai');
}
});
}
&#13;
$('#table').on('click', 'td:nth-child(2)', function()
{
row = $(this).text();
alert(row);
});
&#13;
答案 0 :(得分:3)
您可以使用$(this).closest('tr').find('td:first').text()
获取最接近的第一个td及其文本。
如果想要的项目在tr内部,但你不知道这个地方或者你想要它动态,你可以在名称td中添加一个类或id,并将代码更改为$(this).closest('tr').find('#WantedRowId').text()
$('#table').on('click', 'td:nth-child(2)', function()
{
alert($(this).closest('tr').find('td:first').text());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table border id='table'>
<thead>
<td>Name</td>
<td>Number</td>
<td>Address</td>
</thead>
<tbody>
<tr>
<td>David</td>
<td>999</td>
<td>Street 1</td>
</tr>
<tr>
<td>Bob</td>
<td>555</td>
<td>Street 3</td>
</tr>
<tr>
<td>Jessica</td>
<td>068</td>
<td>Street 5</td>
</tr>
</tbody>
</table>
答案 1 :(得分:1)
您可以在下面找到一个更合适的解决方案,动态检查"Name"
列索引是什么,并相应地进行检索。
因此,如果你插入其他列,比如ID,那么它仍然可以在不更新这个特定逻辑的情况下工作。
$('#table').on('click', 'td:nth-child(2)', function()
{
$td = $(this);
indexCol = $td.closest('table').find('td:contains(Name)').index()
alert( $td.closest('tr').find('td').eq(indexCol).text());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table border id='table'>
<thead>
<td>Name</td>
<td>Number</td>
<td>Address</td>
</thead>
<tbody>
<tr>
<td>David</td>
<td>999</td>
<td>Street 1</td>
</tr>
<tr>
<td>Bob</td>
<td>555</td>
<td>Street 3</td>
</tr>
<tr>
<td>Jessica</td>
<td>068</td>
<td>Street 5</td>
</tr>
</tbody>
</table>