单击目标列JQuery时从另一列获取值

时间:2018-06-13 06:44:07

标签: javascript jquery html

当用户点击'号码'专栏我希望能够获得名称'列值在同一行中。例如,如果我点击' 999'我希望能够得到大卫。



<button class="btn" onclick="save_data_A()" id="per-btn">
    Next&nbsp;&nbsp;<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;
&#13;
&#13;

2 个答案:

答案 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>