我的代码没什么问题。我在一个空数组中输入一个输入的值,然后用一个删除按钮在html列表中显示该值。
但是当我删除html中的值时,数组仍然保存该值。我使用arr.splice(0, 1)
但它没有删除特定值。例如:
我的HTML列表如下:
列表填满后我的数组:
array = [v1, v2, v3]
当我删除html中的v2
时,我的数组没有变化。我是JavaScript的新手。
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>
&#13;
答案 0 :(得分:0)
如果您要从v2
删除array
,请执行此操作。
var index = array.indexOf(v2);
if(index != -1) array.splice(index,1);
答案 1 :(得分:-1)
我使用jQuery重写了这段代码。我将删除所有ID - 您可以相对于单击的按钮进行编辑。除了其他方面,这将允许您在页面上拥有多个这样的内容。
HTML:
OK
这是脚本:
<div class="module">
<input class="item" />
<button type="button" class="btn btn-primary js-add">add</button>
<ul class="list"></ul>
</div>
实际上,如果你想这样做你可以添加多个列表,你实际上需要将'list'数组嵌套在一个对象或数组中,并有一些引用它,可能在模块div中。
您的问题是Angular自动执行的操作 - 没有所有管理。它将html内容绑定到json数组,因此您需要做的就是更改数组值,或删除它。 HTML会立即反映出这种变化。
这是一个jsfiddle: