2016-03-21 4 views
1

Bir jQuery DataTable'da dinamik olarak oluşturulmuş öğelere erişmek istiyorum. sayfa boyutu 10'a ayarlanır beri sadece ilk 10 div'leri erişebilir,jQuery DataTable içindeki öğeleri alın

$(document).ready(function() { 
    var tableref = $('#myTable').DataTable({ "pageLength": 10 }); 
    for (var k=0; k<15; k++) { 
    tableref.row.add(['<div id="myDiv' + k + '">'+k+'</div>']).draw(); 
    console.log(document.getElementById('myDiv'+k)); 
    } 

}); 

: aşağıdaki kodu düşünün. Sonraki 5 eleman için konsolun çıkışının boş olduğunu görebilirsiniz.

fiddle demo

neden oluyor ? ve bu sorunu nasıl çözebilirim?

+0

Seni 10'a "pageLength" set yüzünden olduğunu bu şekilde tahmin Eğer' Veri enjeksiyonunuz için tabloya (11-15) satır enjekte etmeyiniz. DOM kullanarak dinamik olarak oluşturdukları satırları oluşturmayı ve bundan sonra veri eklemeyi deneyebilirsiniz. – RPichioli

+0

Richard'ın cevabı nasıl? Tam olarak ne demek istediğinden emin değilim .. Kodu güncelleyebilir misin? –

+0

Soru şu, bunu yaparak gerçekten ne yapmak istiyorsunuz? Masanıza yeni satırlar ekleniyor mu? –

cevap

0

, üretildiğini tr unsurların bir listesini döndürür. senin Örnek olarak

fazla bilgi http://datatables.net/forums/discussion/7454/fngetnodes-only-returning-visible-nodes için

okuma ....

$(document).ready(function() { 
    var tableref = $('#myTable').DataTable({ "pageLength": 10 }); 
    for (var k=0; k<15; k++) { 
     tableref.row.add(['<div id="myDiv' + k + '">'+k+'</div>']).draw(); 
     //console.log(document.getElementById('myDiv'+k));//Return 10 divs 
    } 

    var aTR = tableref.rows().nodes(); 

    for (var i = 0; i < aTR.length; i++) { 

     console.log($(aTR[i]).find('div')); //return 20 divs 

    } 

}); 

Sonuç: https://jsfiddle.net/cmedina/7kfmyw6x/22/

+0

Teşekkürler CMedina! –

0

Bir datatables nesnesinin verilerine erişmek istiyorsanız, satırlar üzerinde değil, veri özelliği üzerinden yinelememelisiniz. Başvuru için

, bu sayfaya göz atın: Eğer rows().nodes() kullanabileceğiniz tablonun tüm öğelerini almak istiyorsanız https://datatables.net/reference/api/data()

+0

Teşekkürler Richard. tableref.data() [k] '' '' '' '“

k
”]' 'ı tam olarak istediğimden emin olamadığı anlamına gelir. Divanın kendisini nasıl alırım? –