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的答案了解代码失败的原因。非常感谢。摆脱自定义方法是最简单的,并且完全符合我的要求。非常感谢。摆脱自定义方法是最简单的,并且完全符合我的要求。