为什么这不会将数据分配给在函数外声明的变量

时间:2018-03-11 20:09:57

标签: javascript

一直在试图让它工作,正如你在下面的代码中看到的那样,当选择表行时,它会输出一个警告,告诉他们选择哪一行,并将行的id分配给在方法。我正在使用此变量来操作数据。

但是,当它到达另一个函数时,变量是未定义的。 “未捕获的TypeError:无法读取未定义的属性'parentElement'”。应该在何处以及如何声明此变量,以便我能够操纵表格生成的数据?

redux

创建行的内部函数的代码段。请参阅“使行可选:

var selectedItem;

function deleteRow() {
        selectedItem.parentElement.removeChild(selectedItem); 
}

2 个答案:

答案 0 :(得分:0)

你需要一个js元素...... selectedItem是一个字符串

function deleteRow() {
        document.getElementById(selectedItem).parentElement.removeChild(selectedItem); 
}

答案 1 :(得分:0)

.id是一个字符串,因此它没有.parentNode属性。而是直接分配元素。

 selectedItem = event.target.parentNode;

如果它是您尝试分配的行本身,那么只需使用this

selectedItem = this;

如果变量未定义,那么很可能还没有点击。因此,您应该在尝试删除之前进行检查。

function deleteRow() {
  if (selectedItem) {
    selectedItem.parentElement.removeChild(selectedItem); 
  }
}