获取TD数据表中按钮的值

时间:2017-12-19 07:39:30

标签: javascript jquery html datatables

请参阅以下HTML: enter image description here

我需要获得此按钮的值(417762)。我试图这样做,但它不起作用(参见下面的else子句)。我一直都是“未定义”。

$('#migrationssearchtable tbody').on('click',
            'td.details-control',
            function() {
                var tr = $(this).closest('tr');
                var row = table.row(tr);

                if (row.child.isShown()) {
                    row.child.hide();
                    tr.removeClass('shown');
                }
                else {

                    var v = tr.find(".details-control"); // this finds the HTML of the TD
                    var o = v.find(".btn btn-requeue"); // this does not work, gives undefined.  


                }
            }
        );

2 个答案:

答案 0 :(得分:2)

替换

var o = v.find(".btn btn-requeue");

使用

var o = v.find(".btn.btn-requeue");

你可以检查小提琴

http://jsfiddle.net/rgs5a1xy/5/

答案 1 :(得分:1)

您正在寻找v.find(".btn btn-requeue");。请注意btn-requeue前面没有句号。这意味着jQuery将在btn-requeue类的元素中查找带有btn标记的元素。

正确的方式是.btn.btn-requeue,或.btn-requeue

我在下面的代码中将其更改为v.find(".btn.btn-requeue");,这似乎可以解决问题。

$(function(){

	$('#migrationssearchtable tbody').on('click', 'td.details-control',function() {
		var tr = $(this).closest('tr');
  	var v = tr.find(".details-control"); // this finds the HTML of the TD

  	var o = v.find(".btn.btn-requeue"); 
   alert('the value is: '+o.val());
  });
  
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<table id="migrationssearchtable">
<tbody>
<tr>
  <td class="details-control">
    <button class="btn btn-requeue" value="417762">
    ++
    </button>
  </td>
</tr>
</tbody>
</table>