- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当到达行 this.parentNode.removeChild(this);
我收到错误
this.parentNode is undefined
在调试器中,我在该语句的开头暂停,看到“this”是:Object[ tr#CMD01.selected ]
这正是我所期望的。父节点如何未定义?我在这里做了很多类似问题的搜索,并不断发现“this”不正确的情况,但在我的情况下,它是由调试器验证的。
$(document).ready(function() {
$.fn.deleteThisRow = function() {
this.parentNode.removeChild(this);
};
});
function deleteRow() {
$("#theList tr.selected").deleteThisRow();
}
.selected {
background-color: yellow
}
<body>
<center id='bg'>
<table id="cmdList">
<thead>
<tr id="hdrow">
<th>Col1</th>
<th>Col2</th>
<th>Col3</th>
</tr>
</thead>
<tbody id="theList">
<tr id="CMD00">
<td>A1</td>
<td>A2</td>
<td>A3</td>
</tr>
<tr id="CMD01" class="selected">
<td>B1</td>
<td>B2</td>
<td>B3</td>
</tr>
<tr id="CMD02">
<td>C1</td>
<td>C2</td>
<td>C3</td>
</tr>
</tbody>
</table>
<table id="buttons">
<tr>
<td>
<button onclick='deleteRow()'>Delete</button>
</td>
</tr>
</table>
</center>
</body>
最佳答案
当你实现一个 jQuery 方法时,调用时 this
的值将是 jQuery 对象,而不是 DOM 对象。因此,this.parentNode
不存在,因为 jQuery 对象不具有该名称的属性。
您可以使用 jQuery 的 .parent()
,也可以获取实际的 DOM 节点,然后在其上使用 .parentNode
。
如果您只想一次处理一个 DOM 对象,您可以这样做:
$.fn.deleteThisRow = function() {
this[0].parentNode.removeChild(this[0]);
};
如果您的 jQuery 对象中可能有多个对象,那么您可以这样做:
$.fn.deleteThisRow = function() {
this.remove();
};
<小时/>
或者,正如您可能注意到的,您甚至不需要为此使用自定义方法。如果您有该行的 jQuery 对象,则可以直接对其调用 .remove()
。
function deleteRow() {
$("#theList tr.selected").remove();
}
关于javascript - tr 的parentNode 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37898699/
var topClick = function() { child = this.parentNode.parentNode.parentNode.parentNode; child.pare
在我的代码中,函数 displayUserTable 将一些名为 tUserBlock 的 div 附加到名为 centralWindow 的主 div。当您单击 tUserBlock 时,会从名为
这是一种病态的情况,但假设我有以下 HTML: [...] 我有一个表格的引用,例如 var form = document.getElementById(
我正在使用以下代码片段来更新表中的某些文本框值。 ProjectName Block .WorkProgressMilestone Completion
我有一个创建 HTML 表格的函数: makeHTMLTable: function(array){ var table = document.createElement('table');
我已经开始使用 d3,此时我正在编辑给定的脚本以满足新的要求。我尝试访问变量,但无法访问它。有人可以帮我吗? 问题出在第 5 行,我无法获取“this.parentNode”,但我需要它。 有人能指出
我正在通过为自己设置一些小练习来练习基本的 JS 技能。在这个中,我有一个列表 s 位于 div 内。练习的目的是包装每个 在一个 div 中。我正在使用replaceChild在这种情况下。 奇怪
我的 javascript 程序基本上创建一系列图像并随机选择一个图像并将其 src 设置为特定路径。然而,由于某种原因,代码有时似乎会卡住。在我的程序中,我调用其中一个图像的 element.par
我有以下带有 A 框架的 html 结构。基本上,我使用以下基本 html 构建原子的 3D 表示:\ 为了
如果我们使用 closable: true 关闭 tabPanel,则默认操作将销毁 tabPanel。因此,由于 tabPanel 被破坏,我们将无法再次显示 tabPanel。但是,我不希望 ta
我正在尝试使用 JavaScript 复制 jQuery 的 after(): var orangeBlock = 'Try out the New Version of CLO' var greyB
我有一个问题。如何多次使用 parentNode 属性? 我知道我可以做出这样的东西: document.getElementById("mytag").parentNode.parentNode.r
我正在尝试为我构建一个类似 jquery 的实用程序库,这正是我主要使用 jQuery 的东西。 我有以下代码: function jLib(selector) { this.elements =
我有一组嵌套的 div: a b c d 我
现在我有这段代码: function delete_box(n) { document.getElementById("box"+n).style.display = "none";
我有一个获取元素的 id 并找出它的 parentNode 的函数,现在我想在那个 中找到所有 id 以相同的 string 开头的元素>父节点. 有什么功能或方法可以找出来吗?我正在尝试这个: va
是否可以链接 parentNode(或类似的)调用? 例如,假设我有这个 html: 现在假设我在“按钮”上有一个事件监听器。现在我想将
考虑这个简单的页面: var upper; var lower; function crop() { //upper = document.getElemen
我有一个项目列表,上面有不同的事件处理程序。 ... Item ... Add to list A Add to list B
如果它有几个没有 id 的子节点,那么将一些内容添加到 ParentNode 的最佳方法是什么。 条件是: I need to add contents inside this
我是一名优秀的程序员,十分优秀!