jQuery'de tablo satırı ekleme
Bir tabloya son satır olarak ek bir satır eklemek için jQuery'deki en iyi yöntem nedir?
Bu kabul edilebilir mi?
$('#myTable').append('<tr><td>my data</td><td>more data</td></tr>');
Bunun gibi bir tabloya ekleyebileceklerinizle ilgili sınırlamalar var mı (girişler, seçimler, satır sayısı gibi)?
2320
3
Önerdiğiniz yaklaşımın size aradığınız sonucu vereceği garanti değildir - örneğin bir
tbody
olsaydı ne olurdu?Sonunda aşağıdakileri elde edersiniz:
Bu nedenle bunun yerine bu yaklaşımı tavsiye ederim:
Yukarıdaki örnekte olduğu gibi birden fazla satır da dahil olmak üzere, geçerli HTML olduğu sürece
after()
yöntemine her şeyi dahil edebilirsiniz.Güncelleme: Bu soruyla ilgili son etkinlikten sonra bu yanıtı yeniden gözden geçiriyorum. eyelidlessness, DOM'da her zaman bir
tbody
olacağı konusunda iyi bir yorum yapıyor; bu doğrudur, ancak yalnızca en az bir satır varsa. Satırınız yoksa, kendiniz bir tane belirtmediğiniz sürecetbody
olmayacaktır.DaRKoN_ suggests son
tr
den sonra içerik eklemek yerinetbody
ye ekleme. Bu, satır olmaması sorununu aşar, ancak teorik olarak birden fazlatbody
öğesine sahip olabileceğiniz ve satır her birine ekleneceği için hala kurşun geçirmez değildir.Her şeyi tarttığımda, olası tüm senaryoları hesaba katan tek bir satırlık bir çözüm olduğundan emin değilim. JQuery kodunun biçimlendirmenizle uyumlu olduğundan emin olmanız gerekecektir.
Bence en güvenli çözüm, satırları olmasa bile
tablo
nuzun her zaman en az birtbody
içerdiğinden emin olmaktır. Bu temelde, kaç satırınız olursa olsun çalışacak (ve aynı zamanda birden fazlatbody
öğesini hesaba katacak) aşağıdakileri kullanabilirsiniz:Ya bir
<tbody>
ve bir<tfoot>
olsaydı?Mesela:
Ardından yeni satırınızı gövdeye değil, altbilgiye ekleyecektir.
Bu nedenle en iyi çözüm bir
<tbody>
etiketi eklemek ve.after
yerine.append
kullanmaktır.Bu harika jQuery tablo satırı ekle işlevini kullanabilirsiniz. Hem
<tbody>
olan hem de olmayan tablolarda harika çalışır. Ayrıca son tablo satırınızın colspan değerini de dikkate alır.İşte örnek bir kullanım: