Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除当前的<;tr>;并删除<;tr>;在使用普通javascript之前_Javascript_Html - Fatal编程技术网

删除当前的<;tr>;并删除<;tr>;在使用普通javascript之前

删除当前的<;tr>;并删除<;tr>;在使用普通javascript之前,javascript,html,Javascript,Html,我有这个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"&g

我有这个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>
它所做的是用我要查找的
选择
,然后删除整个跨度。这部分
el.prev('tr').remove()不起作用,有其他选择吗


谢谢

prev
是jQuery对象的一种方法
HTMLElement
对象没有
prev
方法。要选择上一个元素同级,可以使用
previousElementSibling
属性。

使用
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确保如果在两个
元素之间有一个额外的文本节点,则如果您刚刚在目标元素的
以前的同级
上调用了
removeChild
,则该文本节点将被跳过,而不会被删除


请查看下面的信息。它有一套很棒的界面文档和教程

再次感谢,谢谢!顺便说一句,我如何确保此类
删除包含类
项目详细信息
?谢谢如果您想继续迭代,直到找到包含该项目的匹配项,请执行
if(sibling.nodeName==='TR')
,而不是
if(sibling.nodeName==='TR'&&sibling.classList.contains('project-details'))
class@TheWolf我还想知道,看起来你有一张表格描述了某种项目,是否应该删除该表。更一般地说,你想解决什么问题?实际上你已经解决了所有问题。这是:
(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);