Javascript 在数组方法delete中删除输入时出现问题
当我试图删除添加的输入时,我会收到一条错误消息,该值为NULL。 所以我的想法是,当我点击DELETE时,只有输入被删除,而不是所有的输入都被删除。 函数myFunction(),则将输入添加到数组中。 实际上,我也想使用Up-Down,但第一次删除必须起作用,但是如果你知道我如何使用Up和Dwon,请写下答案Javascript 在数组方法delete中删除输入时出现问题,javascript,html,Javascript,Html,当我试图删除添加的输入时,我会收到一条错误消息,该值为NULL。 所以我的想法是,当我点击DELETE时,只有输入被删除,而不是所有的输入都被删除。 函数myFunction(),则将输入添加到数组中。 实际上,我也想使用Up-Down,但第一次删除必须起作用,但是如果你知道我如何使用Up和Dwon,请写下答案 var数组=[]; 函数myFunction(){ //console.log('test'); var todoItem=document.getElementById('new-t
var数组=[];
函数myFunction(){
//console.log('test');
var todoItem=document.getElementById('new-todo-item')。值;
const Input=document.querySelectorAll('Input[name=“todo item done”]”);
console.log(输入值);
//输入von Add
数组。取消移位(todoItem);
document.getElementById(“待办事项列表”).innerHTML+=
“”+
" " +
"" +
" | " +
" " +
“删除”+
“ ”
;
document.getElementById('new-todo-item')。value=“”;
}
函数deleteData(){
var deleteValue=document.getElementsByName('todo-item-done')。值;
var index=Array.indexOf(deleteValue);
如果(索引!=-1){
阵列拼接(索引1);
}
}
待办事项列表
要做:
两个问题:首先,正如Matt指出的,您不应该将Array
用作变量名-它是一个保留字-因此将Array
更改为arr
。其次,Delete按钮需要针对同一li
元素中的input
标记。因此,更改变量名并以正确的input
标记为目标,我得到:
var arr=[];
函数myFunction(){
//console.log('test');
var todoItem=document.getElementById('new-todo-item')。值;
const Input=document.querySelectorAll('Input[name=“todo item done”]”);
//console.log(输入值);
//输入von Add
到达取消移位(todoItem);
document.getElementById(“待办事项列表”).innerHTML+=
“”+
" " +
"" +
" | " +
" " +
“删除”+
“ ”
;
document.getElementById('new-todo-item')。value=“”;
}
函数deleteData(e){
控制台日志(arr);
设p=e.parentNode;
控制台日志(p);
让deleteValue=p.getElementsByTagName(“输入”)[0].value;
var指数=arr.indexOf(deleteValue);
如果(索引!=-1){
阵列拼接(索引1);
}
p、 删除();
控制台日志(arr);
}
待办事项列表
要做:
将if(index!=-1){
更改为if(index>-1){
或if(index!=-1){
问题在于:var deleteValue=document.getElementById('todo-item-done')。值;(错误=未捕获类型错误:无法读取null的属性“value”)事实上,代码确实说input[name=“todo item done”]
这意味着项目将其作为名称
而不是id
我现在应该做什么才能获得正确的名称?不要命名变量数组
。这将覆盖内置的数组
对象。请注意,我已将删除按钮的onclick更改为包含此
,以便代码知道是哪个对象首先,感谢您的回答,我在控制台上看到所选元素已从数组中删除,但它始终显示在Borwser上?我希望从浏览器中删除该元素。OK-我已更新了执行此操作的代码。由于代码正在查看delete按钮的父项,因此这只是执行p.remove()的一种情况
删除它