【问题标题】:How to remove parent tag name?如何删除父标签名称?
【发布时间】:2017-01-29 05:46:49
【问题描述】:

我得到了重复的 html 包装器“B”。我想删除 B、I 等的重复包装。

这是我的 HTML,显示我进入了一个元素

<div ng-mouseup="mouseUpEvent(e)" ng-keyup="keyUpEvent()" contenteditable="" data-element="textBlock" id="markdown-body">

  Chicken ipsum dolor sit.<b> Pooz<b>hasellus ege</b>stas</b>,
  ipsum <i>sit amet finibus </i>pellentesque, iza house byys nget lectus. Proin pulvinar enim non mi vestibulum interdum. Sed nisl enim, sagittis non vestibulum eget, congue pellentesque
  ipsum. Nullam nec interdum elit

</div>

脚本 我能够找到父母标签名称和子标签名称

if( newNode.tagName ==  selectedContentParents.tagName){
   console.log('yep'); // this come out as true.
   console.log(typeof newNode );  // object
   console.log(typeof selectedContentParents ); // object
}

如何删除父 tagName B 并获取呈现的内容。 我试图复制父标签的内部 html 并使用 replaceWith 但是没有呈现 HTML。

【问题讨论】:

  • 如果我理解正确,您希望获得div 的内容,其中不包含任何 html 标签。我对吗?如果是,请尝试 .textContent 而不是 .innerHTML
  • 我想获取重复的父 标签并将其删除。内容太长,也许你没看到,但我有两个 标签包装,我想删除父 标签,因为我将“hasellus ege”这个词设置为有 B 标签
  • 你的意思是 嵌套 &lt;b&gt; 标签。对吗?
  • 如果b中有其他标签怎么办
  • 我在父 中有不同的标签我不应该碰它,这就是为什么我要删除父 标签名称。

标签: javascript nodes code-duplication


【解决方案1】:

我真的取决于嵌套的级别。换句话说,如果&lt;b&gt; 内部有一个&lt;b&gt; 元素,另一个&lt;b&gt; 内部呢?或者,这不可能吗?不过,这是您的第一步 - 弄清楚这一点。

假设您只想清除内部某一层的类似元素,您必须弄清楚要对哪些标签执行此操作。

为每个标签创建一个空数组,例如 bArray 和 iArray。使用 document.getElementsByTagName('b')

将所有标记的元素填充到它们

然后对数组进行交互,寻找bArray[i].getElementsByTagName('b')[0],如果找到则捕获innerHTML

所以,您必须知道 b 的子索引,这样您就可以将 .createTextElement 与 innerHTML 并用文本替换该子索引以去除 &lt;b&gt;。

我不会免费的。今天不行。

【讨论】:

    猜你喜欢
    • 2014-07-12
    • 2018-09-13
    • 2020-05-16
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    • 1970-01-01
    • 2014-09-03
    • 1970-01-01
    相关资源
    最近更新 更多