获取TD数据表中按钮的值

问题描述 投票:0回答:2

请参阅以下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.  


                }
            }
        );
javascript jquery html datatables
2个回答
2
投票

更换

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

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

你可以检查小提琴

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


1
投票

你在找v.find(".btn btn-requeue");。请注意,btn-requeue在它面前没有一段时间。这意味着它将使用btn-requeueclass在元素内部寻找带有btntag的元素。

正确的方法是.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>
© www.soinside.com 2019 - 2024. All rights reserved.