2016-08-17 22 views
0

私はテーブル用のデータテーブルを使用しました。クリック可能な要素のデータ検索

$('#tableid').dataTable({ 
    "aLengthMenu": [ 
    [2, 5, 7, -1], 
    [2, 5, 7, "All"] 
    ], 
    "iDisplayLength": 5 
}); 

とdiv要素をクリックすると、datatable.e.gでdiv要素の値を検索します。

<div id="search> 
    <a href="">this</a> 
</div> 

これをクリックすると、「this」が検索されます。これはどのように達成できますか?検索データテーブル用

$(document).on('click','#search',function(e) 
{ 
    e.preventDefault(); 
    var search=$('#search').val(); 

} 
+0

使用しているのDataTableのバージョンは何ですか? –

+0

version1.10.12です。 @palaѕн – Steve

答えて

1

使った検索()関数を手動で

<script> 
     var table = $('#tableid').dataTable({ 
      "aLengthMenu": [ 
      [2, 5, 7, -1], 
      [2, 5, 7, "All"] 
      ], 
      "iDisplayLength": 5 
     }); 

$(document).on('click','#search',function(e) 
    { 
     e.preventDefault(); 
     var search =$('#search').text(); 
     table.search(search).draw(); 
    } 
</script> 

    <div id="search> 

    </div> 
+0

:) davidkonrad(あなたから学ぶ) –

+0

それは私にエラーを与える。 table.searchは関数ではありません。 – Steve

+1

@Steve、 'dataTable()'で初期化したので、代わりに 'DataTable()'を使用してください - jQueryオブジェクトが必要な場合は 'table.api()。search()' ... – davidkonrad

1
<script type="text/javascript"> 
    $(document).ready(function() { 
     var table = $('#example').DataTable({// or .dataTable({ for version under 1.10 
      "aLengthMenu": [ 
       [2, 5, 7, -1], 
       [2, 5, 7, "All"] 
      ], 
      "iDisplayLength": 5 
     }); 
     // it is more efficient to bind the click event not on body rather only on the needed elements 
     // you can use class name for selector if you want to use it on more divs 
     $('.search').click(function(e) 
     { 
      e.preventDefault(); 
      // you need to trim the given value because it can contain whitespace characters which can result false filtering 
      var search = $.trim($(this).text()); 
      table.search(search).draw(); 
     }); 
    }); 
</script> 
<div class="search"> 
    <a href="#">this</a> 
</div> 
<div class="search"> 
    <a href="#">that</a> 
</div> 
関連する問題