删除当前<tr>并且还删除<tr>在使用纯javascript之前
delete the current <tr> and also delete the <tr> before it using plain javascript
我有这样的HTML结构:
<tr class="project-details">REMOVE THIS</tr>
<tr class="project-description">
<td colspan="6">
<div class="project-desc-inner">
<div class="project-synopsis">
<p class="trunk8">This is an entry</p>
</div>
<div class="project-verification">
<span class="verfied-badge"> <~~~~~~~~~~ THIS SPAN
<span class="currency-symbol">$</span>
<span class="icon-tick"></span>
Verified
</span>
</div>
<div class="project-actions">
<a href="#">
<button class="btn">LOL</button>
</a>
</div>
</div>
</td>
</tr>
我希望整个<tr class="project-details">REMOVE THIS</tr>
及其内容将被完全删除
这就是我目前所拥有的:
function showAlert()
{
var projectDescriptions = document.querySelectorAll('tr.project-description'),
projectDescriptions = Array.prototype.slice.call(projectDescriptions);
projectDescriptions.forEach(function(el) {
if (el.querySelector('span.verfied-badge')) {
}else {
el.parentNode.removeChild(el);
el.prev('tr').remove();
}
});
}
它所做的是选择具有我要查找的<span>
的<tr>
,然后删除整个跨度。这部分el.prev('tr').remove();
不工作,有其他选择吗?
谢谢!
else
子句的主体:
(function removePreviousSibling(sibling) {
if (sibling.nodeName === 'TR' && sibling.classList.contains('project-details')) {
return sibling.parentNode.removeChild(sibling);
}
removePreviousSibling(sibling.previousSibling);
}(el.previousSibling));
el.parentNode.removeChild(el);
IIFE确保如果两个<tr>
元素之间有一个额外的文本节点,那么如果您只是在目标元素的previousSibling
上调用了removeChild
,则该文本节点将被跳过而不会被删除。
请查看MDN的DOM页面上的信息。它有一套很棒的界面文档和教程。
prev
是一个jQuery对象的方法。HTMLElement
对象没有prev
方法。为了选择上一个同级元素,可以使用previousElementSibling
特性。
相关文章:
- 正在删除'<以及那些>'来自javascript中的字符串
- jquery如何删除<tr>标记
- 删除所有<link>iframe中的元素
- javascript页面加载检查是否存在具有特定类的span(在<tr>下),如果不存在,则删除整个<
- 删除当前<tr>并且还删除<tr>在使用纯javascript之前
- 删除<脚本>标签中的<头部>在所有Drupal 7页中
- Tinymce删除<html>在文本区域中输出时标记
- 主干->无法调用方法'删除'的未定义
- 如何修改此javascript使其'll删除两者<b>并且<i>标签
- 删除内部嵌套标记<a>标记
- <tspan>文本</tspan>如果没有定义id或类,如何删除文本
- 删除空<李>使用jQuery
- 删除第一个和最后一个<br/>来自字符串
- jQuery:添加和删除<br>标签,这取决于窗口宽度以及标签是否已经存在
- 如何使用Rhino删除<脚本>标签
- 如何删除<i>标记
- 删除所有<br>就在关闭</p>
- 如何删除<br>从prettyPhoto悬停
- AngularJS DOM修改删除事件->需要可行的变通方法实现模式
- 如何删除所有<李>具有innerHTML==“&";