2013-04-10 65 views
0

我有一個非常簡單的腳本,從輸入框中獲取內容,使數組脫離它,刪除所需的元素,並將文本吐出。Javascript拼接正在移除一切,但請求的元素

我試圖用「剪接()」中刪除項目,但它消除一切,但一個項目:

var listOfTitles = $('.title-list').val(); 
var arrayOfTitles = listOfTitles.split(','); 
var updatedTitles = arrayOfTitles.splice(2,1); 
$('.title-list').val(updatedTitles.join()); 

例如,如果我有這樣的:

爲test1,test2的, test3,test4

我可以把它變成一個數組。我想刪除「test3」並輸出「test1,test2,test4」。問題是,它返回「test3」而不是刪除它。

的jsfiddle發生的事情的:http://jsfiddle.net/C95kN/

+2

你在哪裏在代碼中使用拼接? – Bergi 2013-04-10 18:00:47

+0

這是一個錯字,我編輯了這個問題,並添加了一個jsfiddle – dcp3450 2013-04-10 18:06:25

回答

3

Splice()修改陣列並返回一個包含您刪除的元素的數組。

你想要的是arrayOfTitles沒有updatedTitles

見工作小提琴:http://jsfiddle.net/C95kN/1/

+0

AH!我認爲它將修改後的數組作爲輸出,而不是直接修改數組。謝謝! – dcp3450 2013-04-10 18:15:20

2

splice改變了傳遞的數組,並返回被刪除的元素。簡單地做

arrayOfTitles.splice(2,1); 
$('.title-list').val(arrayOfTitles.join()); 

注意,我以爲是slice代替splice是一個錯字。

+0

是的,這是一個錯字。我會解決它。這裏是我看到的jsfiddle:http://jsfiddle.net/C95kN/ – dcp3450 2013-04-10 18:03:47