我的问题是我必须从数组中删除一些东西。我发现了如何删除列表框中的内容。但问题是列表框是由数组填充的。因此,如果我不删除数组中的值(我从列表框中删除)。添加新项目时,该值会不断返回。顺便说一句:我是php和javascript的新手。
我的代码是:
function removeItem(veldnaam){
var geselecteerd = document.getElementById("lst"+veldnaam).selectedIndex;
var nieuweArray;
alert(geselecteerd);
alert(document.getElementById(veldnaam+'hidden').value);
For (var i = 0, i<= arr.lenght, i++) {
If (i= geselecteerd){
nieuweArray = arr.splice(i,1);
document.getElementById(veldnaam+'hidden').value = arr;
}}
document.getElementById("lst"+veldnaam).remove(geselecteerd);
}
答案 0 :(得分:3)
使用删除操作符。我假设您正在使用对象作为关联数组。
var arr = {
"hello": "world",
"foo": "bar"
}
delete arr["foo"]; // Removes item with key "foo"
答案 1 :(得分:3)
您可以使用 delete 命令删除数组中的元素。但它只会将值设置为 undefined 。
var arr = ['h', 'e', 'l', 'l', 'o'];
delete arr[2];
arr => ['h', 'e', undefined, 'l', 'o'];
因此它不会删除该项,并且创建一个较短的数组,该数组仍将有5个元素(0到4),但该值已被删除。
对于“关联”数组或对象:属性将被删除,它将不再存在。
var obj = { 'first':'h', 'second':'e', 'third':'l'};
delete obj['first'];
obj => { 'second':'e', 'third':'l'};
答案 2 :(得分:3)
在某处添加以下代码
// Array Remove - By John Resig (MIT Licensed)
Array.prototype.remove = function(from, to) {
var rest = this.slice((to || from) + 1 || this.length);
this.length = from < 0 ? this.length + from : from;
return this.push.apply(this, rest);
};
并将其称为:
// Remove the second item from the array
array.remove(1);
// Remove the second-to-last item from the array
array.remove(-2);
// Remove the second and third items from the array
array.remove(1,2);
// Remove the last and second-to-last items from the array
array.remove(-2,-1);
包含上述代码和解释的文章:http://ejohn.org/blog/javascript-array-remove/
答案 3 :(得分:0)
var geselecteerd = document.getElementById("lst"+veldnaam).selectedIndex;
var nieuweArray;
var teller = 0;
var oudeArray=document.getElementById(veldnaam+'hidden').value;
var tmpArr="";
nieuweArray=oudeArray.split(":");
for (i = 0; i<nieuweArray.length; i++){
if (!(i==geselecteerd)){
tmpArr = tmpArr+nieuweArray[i]+":";}
teller++;
}
tmpArr = tmpArr + ":";
tmpArr = tmpArr.replace("::","");
document.getElementById(veldnaam+'hidden').value = tmpArr;
document.getElementById("lst"+veldnaam).remove(geselecteerd);
}
这是我的解决方案而且有效。谢谢你的帮助。