2017-12-19 4 views
0

をDataTableの次のHTMLを参照してください。私は、このボタンの値(417762)を取得する必要があります enter image description here取得値は

を。 I "メートルこのようにそれを行うには、それが動作しないしよう(下に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. 


       } 
      } 
     ); 
+0

'' tbody'にclick'? – Pedram

+3

最後のセレクタの '.'は' .btn.btn-requeue'でなければなりません。 –

+0

@ Mr.x、 'on'メソッドを使って動的にクリックします。 –

答えて

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の前にピリオドがないことに注意してください。つまり、jQueryはbtnクラスの要素の内部にbtn-requeueというタグを持つ要素を探しています。

正しい方法は.btn.btn-requeue、またはちょうど.btn-requeueです。

私は以下のコードでv.find(".btn.btn-requeue");に変更しました。これはそのトリックを行うようです。

$(function(){ 
 

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

 
    \t 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>