2014-09-29 43 views
3

PFB Java腳本代碼..如何防止在Java腳本重複條目,同時將數據追加到#div

的東西是重複的條目即時得到警報。如何避免重複的數據?

Var activityconunt =0;  
    if (activityconunt !== data.iRoundId) { 
     alert("duplicate"); 
     $("#selectRound_Type").append("<option name='round' id=" + data.iRoundId + ">" + data.strRoundName + "</option>");    
     } 

my output 我的輸出

+0

重複值和不定值可能你以前創建數據的數組擁有乾淨的數據。見http://api.jquery.com/jquery.inarray/ – Dwza 2014-09-29 08:10:02

+0

它第一次工作正常(第二次只附加一些重複的數據)。 – 2014-09-29 08:14:06

+0

我試着用斷點。該循環執行超過9次而不是3次:( – 2014-09-29 08:15:38

回答

1

解決方法一:

把你的數據和之前建立一個乾淨的數組。使用http://api.jquery.com/jquery.inarray/

解決方法二:

檢查現有的選項包含值

if($("option:contains('" + data.strRoundName + "')").length == 0) 
    $("#selectRound_Type").append("<option name='round' id=" + data.iRoundId + ">" + data.strRoundName + "</option>"); 

這應該做得一樣好,是一個較短的代碼

也看到Fiddle

+0

嗨Dwza其工作正常。但即時通訊列表中還有一個未定義的值:| – 2014-09-30 04:59:17

1

使用數組來存儲數據,並檢查它的新價值:

$(function() { 
 
    var items = []; 
 
    var $select = $('select'); 
 
    var $input = $('input'); 
 
    var $button = $('button'); 
 

 
    // fetch current data 
 
    $select.find('option').each(function() { 
 
    items.push($(this).text()); 
 
    }); 
 

 
    $button.on('click', function() { 
 
    var value = $input.val(); 
 
    var exists = ($.inArray(value, items) != -1); 
 

 
    if (! exists) { 
 
     items.push(value); 
 
     $('<option></option').text(value).prependTo($select); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<input type="text" /> 
 
<button>Add</button> 
 
<br /> 
 
<select style="width: 300px;">  
 
    <option>Hello</option> 
 
</select>

1

解決方案,以防止在列表中

if ($("option:contains('" + data.strRoundName + "')").length == 0 
    && data.strRoundName != null 
    && typeof data.strRoundName != "undefined") 
    $("#selectRound_Type").append("<option name='round' id=" 
     + data.iRoundId + ">" 
     + data.strRoundName + "</option>");