2013-07-31 41 views
0

enter image description hereMy fiddle如果使用其他的Javascript過濾功能

裏面我有這樣的小提琴。我想在這樣的過濾器函數內部使用if。我有一個工作,但循環似乎沒有打破。由於不會中斷,因此所有未過濾的條件都會打印其他部分。如何打破這個循環?或者有更好的想法嗎?

我有兩個文本框和一個按鈕,當我輸入標題和數量和命中添加,我想檢查它是否已經存在於表上。如果存在,我想將數量替換爲新值。如果它不存在,我想添加新的標題和數量的新行。檢查存在對我來說是個神祕的東西,根本不起作用。

$('#btnAdd').click(function() { 
     debugger; 
     UOMCaption = $('#UOMCaption').val(); 
     UOMQty = $('#UOMQuantity').val(); 

     $("#tbluom tr td:first-child").filter(function() { 
      if ($(this).text().indexOf(UOMCaption) > -1) { 
       $(this).next("td").text("found it"); 
      } 
      else { 
       $('#tbluom >tbody').append('<tr><td>' + UOMCaption + '</td><td>' + UOMQty + '</td></tr>'); 
      } 
     }); 
     $('#UOMCaption,#UOMQuantity').val(""); 
    }); 
+1

所以,你要打破,當你找到的第一個元素? –

+0

你的小提琴與提供的代碼不符,爲什麼? – muneebShabbir

+0

如果你想在找到第一個元素後返回,那麼在if塊內添加一個return語句。 – schnill

回答

1

如果你想在循環打破後的第一場比賽,然後使用

$("#tbluom tr td:first-child").each(function() { 
    if ($(this).text().indexOf(UOMCaption) > -1) { 
     $(this).next("td").text("found it"); 
     return false; 
    } else { 
     $('#tbluom >tbody').append('<tr><td>' + UOMCaption + '</td><td>' + UOMQty + '</td></tr>'); 
    } 
}); 
+0

return false not working on else部分,如果表中已經存在三行,那麼新的記錄被追加三次以上.. – Sakthivel

+0

@codebrain它應該在使用'each'而不是'filter'時工作。 – basilikum

+0

這一個近乎工作,但是當我添加同樣的UOMcaption如果無法檢查..有什麼問題。 – Sakthivel