单击表中的任何项目,都将该值放在隐藏的输入上

Whatever item in a table is clicked, put that value on a hidden input

本文关键字:隐藏 输入 任何 项目 单击      更新时间:2023-09-26

我需要捕获在表格上单击的任何项目并将其放入隐藏输入中。据我所知:

var $rows = $('#table tbody tr');
$('#search').keyup(function() {
    var val = '^(?=.*''b' + $.trim($(this).val()).split(/'s+/).join('''b)(?=.*''b') + ').*$',
        reg = RegExp(val, 'i'),
        text;
    $rows.show().filter(function() {
        text = $(this).text().replace(/'s+/g, ' ');
        return !reg.test(text);
    }).hide();
});
$('td').click(function() {
    var txt = $('td:first-child').text();
    $('#tipo').val(txt);
});
    
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="input-group">
    <span class="input-group-addon" id="rotulo">Filtrar:</span>
    <input type="text" class="form-control" placeholder="" aria-describedby="rotulo" id="search">
</div>
<table class="table" id="table">
    <tr>
        <td>1st Value</td>
    </tr>
  
    <tr>
        <td>2nd Value </td>
    </tr>
  
    <tr>
        <td>3rd Value </td>
    </tr>
   </table>
<input type="text" id="tipo" value="">

问题是,无论我单击什么值,表中的许多项目都会被选中,即使第一个项目被隐藏也是如此。正在使用 Jquery。

td:first-child选择第一个子 TD,这就是为什么您总是得到第一个元素。

可以使用$(this).text()检索单击的元素文本

您还可以执行以下操作:

$('td').click(function() {
  var txt = $('.table').find('td:visible:first').text();
  $('#tipo').val(txt);
});

它将在表中找到第一个可见元素并输出其文本。

在这里工作小提琴。