Oluşturduğum html tablo içerisinden aradığım kriterlere uygun bir satırı sildirmek için tüm listeyi jquery metodu olan each ile tarattım. Fakat sileceğim liste elemanının sayısı bir tane olduğu için silinecek eleman bulunduktan sonra geriye kalan elemanları taramasına gerek kalmadığı için döngüyü sonlandırmam gerekti.
Ben normalde for döngüsünde olduğu gibi "break;" ile döngüyü sonlandırmaya çalıştırdığımdan doğal olarak sonlanmadı tabi (: . Biraz araştırdıktan sonra bir çözüm buldum bunu sizinle paylaşmak istedim belki işinize yarayabilir.
Örnek bir kodla daha iyi olacak sanki .
Html
<div> <button type="button" id="buton">Tıkla</button> <table id="tablo"> <tbody> <tr> <td>Wordpress</td> <td>html</td> </tr> <tr> <td>-1</td> <td>html</td> </tr> <tr> <td>php</td> <td>mysql</td> </tr> <tr> <td>html</td> <td>css</td> </tr> </tbody> </table> </div>
Ben html kodumuzun başında bulunan butonumuza tıklandığında tabloda bulunan td tagları içerisindeki metin "-1" ise o td tagının bulunduğu satırı(tr) sildirmek istiyorum. Ben -1 değerinin sadece bir tane olduğunu bildiğim için eğer -1 bulunursa döngüyü sonlandırmalıyım.
Jquery
$(document).ready(function($){ var sayi = 0; $("#buton").click(function(){ $("#tablo") .find("tbody") .find("tr:has(td)").each(function(index){ if ( $(this).find("td").first().text() == "-1" ) { $(this).remove(); sayi++; return false; } }); alert(sayi); }); });
Bizim html kodumuza göre döngünün 2 kez dönesi gerekiyor. Bunu anlamak için sayi adlı değişkeni kullandım alert ile sayıyı gösterdiğimizde 2 görüyoruz. Döngünün sonlanması için tek yaptığımız döngü içerisinde if koşulu içerisine "return false" eklemek.