2015-12-25 77 views
1

我想刪除檢查標記時的值。刪除檢查標記後的陣列值

我的HTML

<ul id="keyWords"> 
    <li><input id="check" name="check" type="checkbox">thirteen</li> 
    <li><input id="check" name="check" type="checkbox">twelve</li> 
    <li><input id="check" name="check" type="checkbox">eleven</li> 
    <li><input id="check" name="check" type="checkbox">ten</li> 
    <li><input id="check" name="check" type="checkbox">nine</li> 
    <li><input id="check" name="check" type="checkbox">eight</li> 
    <li><input id="check" name="check" type="checkbox">one</li> 
</ul> 

當這個按鈕被點擊,我需要檢查標記的值從數組

<button id="clearChecked">Clear Checked Items</button> 

除去,這是我想使用jQuery的功能,但它不管用。 我需要的功能,從名爲localArray數組中刪除選中的盒裝值和關鍵字是的ulkeyWords

$('#clearChecked').click(function() { 
    var keyWords = $('#keyWords').html(); 
    if ((index = keyWords.indexOf($(localArray.this).val())) !== -1) { 
    localArray.splice(index, 1); 
    } else { 
    if ($(keyWords.this).is(':checked')) { 
     localArray.push($(this).val()); 
    } 
    } 
}); 
+1

刪除對象你可以發佈'localArray'的內容嗎? – Sachin

+0

他們張貼在問題中。但他們可以是任何東西。在任何時候。 – wuno

+0

localArray是填充問題中顯示的html的數組。 – wuno

回答

1

不要打擾拼接陣列,只需創建一個新的:

var newArray = []; 
$('#clearChecked').click(function() { 
    $('#keyWords > input').each(function (n, obj) { 
     if ($(obj).is(':checked')) { 
      newArray.push($(obj).val()); 
     } 
    } 
}); 
localArray = newArray; 
+0

謝謝。你聽起來很容易。它沒有完全運作,但邏輯是我需要的。我很感激。 但不是你的函數說如果他們檢查推到新陣列? – wuno

+0

@NichoDiaz是的,這是原則。 –

+0

雅,但如果它被選中,我想刪除它。不保留它。重點是他們可以通過檢查並從清單中刪除值,並單擊清除 – wuno

0

每次點擊區域覆蓋localArray,更聰明,而不是從它

<ul id="keyWords"> 
    <li><input name="check[]" type="checkbox" value='thirteen'>thirteen</li> 
    <li><input name="check[]" type="checkbox" value='twelve'>twelve</li> 
    <li><input name="check[]" type="checkbox" value='eleven'>eleven</li> 
    <li><input name="check[]" type="checkbox" value='ten'>ten</li> 
    <li><input name="check[]" type="checkbox" value='nine'>nine</li> 
    <li><input name="check[]" type="checkbox" value='eight'>eight</li> 
    <li><input name="check[]" type="checkbox" value='one'>one</li> 
</ul> 
<button id="clearChecked">Clear Checked Items</button> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> 
<script> 
var localArray = []; 
$('#clearChecked').click(function() { 
    var Array = []; 
     $('#keyWords input').each(function() { 
     if ($(this).is(':checked')) 
      Array.push($(this).val()); 
     }); 
    localArray = Array; 
    console.log(localArray); 
}); 
</script> 
+0

每次單擊語言環境重寫localArray時,都比從中刪除對象更聰明。 –