如何从数组中删除元素
How to remove element from array
我的代码没有什么问题。我在一个空数组中按下输入的值,然后用remove按钮在html列表中显示该值。
但是,当我删除html中的值时,数组仍然保留该值。我使用了arr.splice(0, 1)
,但它没有删除特定的值。示例:
我的html列表看起来像:
- v1
- v2
- v3
列表填充后的我的数组:
array = [v1, v2, v3]
当我在html中删除v2
时,我的数组不会改变。我是JavaScript的新手。
我在JSBin或JSFiddle中的代码。
对不起,我的英语不是很好
https://jsfiddle.net/15mdjdpa/
var taches = [];
var saisie;
var ecran;
var liste;
var organiz;
var j= 0;
function run(){
saisie= document.getElementById('champ').value;
taches.push(saisie);
ecran = document.getElementById('afficheur');
var liste = document.getElementById('listes');
console.log("taches :", taches);
var li = document.createElement('li');
li.setAttribute("id", "lisupr");
var btn = document.createElement('Button');
btn.textContent="X";
btn.addEventListener("click",function supr (){
liste.removeChild(li);
taches.splice(0,1);
console.log("tableau taches: "+ taches);
} );
li.innerText= saisie + " "+" ";
console.log("saisie "+saisie);
li.appendChild(btn);
liste.appendChild(li);
}
<input type ="text" id="champ" onfocus="javascript:this.value=''" class="form-control ">
<button type="button" onclick ="run()" class="btn btn-primary" >send</button>
<div id="afficheur"><h4> list : </h4>
<ul id="listes"> </ul>
</div>
如果要从array
中删除v2
,请执行以下操作。
var index = array.indexOf(v2);
if(index != -1) array.splice(index,1);
我会用jQuery重写这段代码。我会删除所有的id——你可以相对于被点击的按钮进行编辑。这会让你在一页上有不止一个这样的东西。
HTML:
<div class="module">
<input class="item" />
<button type="button" class="btn btn-primary js-add">add</button>
<ul class="list"></ul>
</div>
这是脚本:
var list = [],
addToList = function(target,item){
list.push(item);
target
.append(
$('<li>')
.html(item)
.append(
$('<button>')
.addClass('js-delete m-l')
.html('X')
)
)
}
$('.js-add').click( function(){
var parent = $(this).parent(),
item = parent.find('input.item');
addToList(parent.find('ul.list'),item.val());
item.val('');
})
$('.module').on( 'click', '.js-delete', function(){
var parent = $(this).parent(),
index = $('li').index( parent );
list.splice(index,1);
parent.remove();
console.log(list);
})
事实上,如果你想添加多个列表,你实际上需要将"list"数组嵌套在一个对象或数组中,并引用它,可能在模块div中。
你的问题是Angular在没有所有管理的情况下自动做什么。它将html内容绑定到json数组,因此您所需要做的就是更改或删除数组值。html会立即反映更改。
这是一个jsfiddle:
https://jsfiddle.net/mckinleymedia/yducyt83/
相关文章:
- 从组件状态的数组中删除元素
- 从数组中删除元素的最佳方法是:javascript/jquery
- 正则表达式条件来删除元素
- 使用javascript删除元素时出现的问题
- 当会话存储阵列中存在大量元素时,如何从中删除元素
- 从角度数组中删除元素
- AngularJs localStorage在循环中删除元素
- 在使用jquery插入之前删除元素
- 如何删除元素列表中的类并添加到另一个元素 Jquery.
- 更新分组条形图(转换或删除元素组)
- 向下滚动后如何用同一类逐个删除元素
- 如何防止 jQuery 事件在删除元素时冒泡
- 从jQuery对象中删除元素
- 如何删除元素的结束标记,添加一些文本,然后重新添加标记
- 从画布中删除元素
- 如何解析html以删除元素并只返回其位置的标题
- 使用 V8 从密集数组中删除元素的最佳方法是什么
- 如何使用jquery删除元素
- 根据成员属性从数组中删除元素
- 从中删除元素'的父元素,并将其附加到其他元素