Javascript 未为tr定义parentNode

Javascript 未为tr定义parentNode,javascript,jquery,Javascript,Jquery,当它到达行this.parentNode.removeChild(this)时 我得到了错误 此.parentNode未定义 在调试器中,我在该语句的开头暂停,并看到“this”是:Object[tr#CMD01.selected],这正是我所期望的。如何定义parentNode?我已经在这里对类似的问题进行了大量搜索,并不断发现“this”不正确的情况,但在我的例子中,它是由调试器验证的 $(文档).ready(函数(){ $.fn.deleteThisRow=函数(){ this.pare

当它到达行
this.parentNode.removeChild(this)时

我得到了错误

此.parentNode未定义

在调试器中,我在该语句的开头暂停,并看到“this”是:
Object[tr#CMD01.selected]
,这正是我所期望的。如何定义parentNode?我已经在这里对类似的问题进行了大量搜索,并不断发现“this”不正确的情况,但在我的例子中,它是由调试器验证的

$(文档).ready(函数(){
$.fn.deleteThisRow=函数(){
this.parentNode.removeChild(this);
};
});
函数deleteRow(){
$(“#列表tr.selected”).deleteThisRow();
}
。已选定{
背景颜色:黄色
}

可乐
可乐
可乐
A1
A2
A3
地下一层
地下二层
地下三层
C1
C2
C3
删除

当实现jQuery方法时,调用它时,
this
的值将是jQuery对象,而不是DOM对象。因此,
this.parentNode
不存在,因为jQuery对象没有该名称的属性

您可以使用jQuery的
.parent()
,也可以获取实际的DOM节点,然后在该节点上使用
.parentNode

如果一次只处理一个DOM对象,可以执行以下操作:

$.fn.deleteThisRow = function() {
    this[0].parentNode.removeChild(this[0]);
};
$.fn.deleteThisRow = function() {
    this.remove();
};
如果jQuery对象中可能有多个对象,则可以执行以下操作:

$.fn.deleteThisRow = function() {
    this[0].parentNode.removeChild(this[0]);
};
$.fn.deleteThisRow = function() {
    this.remove();
};

或者,正如您可能注意到的,您甚至不需要为此定制方法。如果该行有jQuery对象,则可以直接对其调用
.remove()

function deleteRow() {
    $("#theList tr.selected").remove();
}

当实现jQuery方法时,调用它时,
this
的值将是jQuery对象,而不是DOM对象。因此,
this.parentNode
不存在,因为jQuery对象没有该名称的属性

您可以使用jQuery的
.parent()
,也可以获取实际的DOM节点,然后在该节点上使用
.parentNode

如果一次只处理一个DOM对象,可以执行以下操作:

$.fn.deleteThisRow = function() {
    this[0].parentNode.removeChild(this[0]);
};
$.fn.deleteThisRow = function() {
    this.remove();
};
如果jQuery对象中可能有多个对象,则可以执行以下操作:

$.fn.deleteThisRow = function() {
    this[0].parentNode.removeChild(this[0]);
};
$.fn.deleteThisRow = function() {
    this.remove();
};

或者,正如您可能注意到的,您甚至不需要为此定制方法。如果该行有jQuery对象,则可以直接对其调用
.remove()

function deleteRow() {
    $("#theList tr.selected").remove();
}

this.remove()
将起作用-查看jfriend00的答案了解代码失败的原因。
this.remove()
将起作用-查看jfriend00的答案了解代码失败的原因。非常感谢。摆脱自定义方法是最简单的,并且完全符合我的要求。非常感谢。摆脱自定义方法是最简单的,并且完全符合我的要求。