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

时间:2016-02-19 20:05:24

标签: javascript jquery filter

我需要点击桌面上的任何项目进行捕获并将其放入隐藏的输入中。 这是我得到的:

SELECT cp.code, count(*) uses
FROM coupons cp
JOIN coupon_uses  cu ON CP.id = cu.coupon_Id
GROUP BY cp.id, cp.code
HAVING count(*) < cp.max_uses
UNION
SELECT cp.code, 0 uses
FROM coupons cp
LEFT JOIN coupon_uses cu ON CP.id = cu.coupon_Id
WHERE cu.coupon_Id IS NULL
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);
});
    

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

2 个答案:

答案 0 :(得分:2)

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

可以使用$(this).text()

检索点击的元素文字

答案 1 :(得分:0)

您还可以执行以下操作:

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

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

工作小提琴here