2011-10-14 33 views
0

我正在使用onclick函數,並通過爲其添加值來添加值。如果該值已經存在,我會從列表中刪除該值。想要添加一個值並使用javascript或jquery刪除一次點擊

function send_value(str) 
    { 
    //alert(str); 
    var sub_id = document.getElementById('selected_sub_id').value; 
    //alert(sub_id.indexOf(str)); 
    if(sub_id.indexOf(str)==-1) 
    { 
     if(sub_id=="") 
     { 
      sub_id+=str; 
     } 
     else 
     { 
     sub_id+=','; 
     sub_id+=str; 
     } 
    } 
    else 
    { 
     sub_id = sub_id.replace(str+",", ""); 
     sub_id = sub_id.replace(","+str, ""); 
     sub_id = sub_id.replace(str, ""); 
    } 
    //alert(sub_id); 
    document.getElementById('selected_sub_id').value=sub_id; 
} 

這是函數。假設我在selected_sub_id中有1,2,3,4的值,並且我傳遞5給它,它將被存儲爲1,2,3,4,5 現在我傳遞了24,它將被存儲爲1, 2,3,4,5,24 沒想到我想刪除2,所以當我發送2的功能,它刪除所有的事件2,所以我只剩下1,3,4,5 ... 請提前幫助我,謝謝..

回答

2

你最可能想要一個這樣的數組。它使事情變得更容易。

創建一個第一:

var arr = []; 

添加去與.push

arr.push(24); 

卸下去與.splice.indexOf(所述1裝置 '中除去1個元素'):

arr.splice(arr.indexOf(24), 1); 

轉換爲字符串.join

arr.join(); // 1,2,3,24 or something similar depending on elements 

例如:http://jsfiddle.net/ScBNQ/

var arr = []; 

// adding 

arr.push(1); 
arr.push(2); 
arr.push(3); 
arr.push(24); 

// removing 

arr.splice(arr.indexOf(2), 1); 

// joining 

arr.join(); // 1,3,24 
+0

如何我硝酸鉀,我送的元素是數組或不 – gklaxman

+0

@ lucky123:'arr.indexOf(24)'返回'-1'如果'24'是不是數組中,否則它將返回它所在的索引。 – pimvdb

+0

'var arr = []; \t \t var arr = document.getElementById('selected_sub_id')。value; \t //alert(sub_id.indexOf(str)); \t如果(arr.indexOf(STR)== - 1) \t { \t \t \t arr.push(STR); \t} \t別的 \t { \t \t arr.splice(arr.indexOf(STR),STR); \t \t arr.join(); \t} \t // alert(sub_id); \t document.getElementById('selected_sub_id')。value = arr;' Iam這樣做!!!!告訴我,如果它錯了。它說'arr.push(str);'不是一個函數; – gklaxman

相關問題