Javascript-如何删除nodeName或HTML标记,但不保留内部标记?

克里斯·塔拉索夫斯(Chris Tarasovs)

我将用户选择的范围存储在变量中。

var sel, range, off, tags; 
sel = window.getSelection();
 if (sel.rangeCount) {
            range = sel.getRangeAt(0);
            var off = sel.anchorOffset;

         }
         else if (document.selection && document.selection.createRange) {
            range = document.selection.createRange();
            var off = document.selection.anchorOffset;

        }
return range;

html

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

        Chicken ipsum dolor sit amet, consectetur adipiscing elivolutpat volutpat. Nunc imperdiet urna et orci mattis, 
pellentesque posuere enim pellentesque. Aenean id orci et nunc venenatis vestibulum et et ligula. Morbi mollis ornare purus
 non blandit.<b> Phasellus egestas</b>, ipsum <i>sit amet finibus </i>pellentesque, <span style="color: red;">tellus urna
 lobortis tellus, id tincidunt </span>Piza 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>

我找到了我的anchorNode和我的focusNode。因此,我选择了我的节点,即nodeName“ B”。代表大胆。

如果我执行element.nodeName,我的输出将是“ B”。

如果我输出我的元素,我会<b> Phasellus egestas</b>得到一个选定的范围,并且选择了“ asellus eges”

我想删除<b>标签。并将标签添加到选择范围。如果我使用元素的innerHTML并将其替换,那么我会被选择范围弄得一团糟。

我已经看到人们建议做一个寻找父节点,而不是选择childNode并删除并做类似的事情:

element[index].parentNode.removeChild(element[index]);

但这会导致问题,如果我的父母有两个具有相同nodeName的子节点。

我已经有了选择特定Node的元素,如何保留innerConnet和HTML标记,但删除b标签?

zer00ne

在文本框中输入tagName,然后单击代码段中的UNWRAP按钮。所有详细信息都在摘录中进行了注释。

SNIPPET

function unWrap(wrap) {

  if (!wrap) {
    console.log('Enter a valid selector without quotes');
  }

  // Reference the node to unwrap
  var removeThis = document.querySelector(wrap);

  if (removeThis == "undefined" || removeThis == false) {
    console.log('Selector doesn\'t exist in DOM.');
  }

  // Reference the wrapper's parent
  var parent = removeThis.parentNode;

  // Move all of wrapper's descendants...
  while (removeThis.firstChild) {

    /* ...by taking the wrapper's first child...
    || ...and placing it in front of the wrapper.
    || ...Eventually, all of wrapper's children...
    || ...are it's siblings now.
    */
    parent.insertBefore(removeThis.firstChild, removeThis);

  }

  // Once the wrapper is empty, remove it
  parent.removeChild(removeThis);

}
body {
  color: white;
}
header,
footer {
  background: cyan;
  color: black;
}
table {
  border: 3px solid gold;
  width: 300px;
}
td {
  border: 1px solid tomato;
}
section {
  border: 8px dashed blue;
}
main {
  background: #444;
}
b {
  background: yellow;
  color: #444;
}
input {
  float: right;
  width: 12ch;
}
.as-console {
  color: blue;
}
<main>
  MAIN
  <section>
    SECTION
    <header>HEADER</header>
    <p>TEXT TEXT <b>TEXT</b> TEXT TEXT</p>
    <p>TEXT TEXT <b>TEXT</b> TEXT TEXT</p>
    <p>TEXT TEXT <b>TEXT</b> TEXT TEXT</p>
    <p>TEXT TEXT <b>TEXT</b> TEXT TEXT</p>
    <p>TEXT TEXT <b>TEXT</b> TEXT TEXT</p>
    <table>

      <form id='f1' name='f1'>
        <input type='button' value='UNWRAP' onclick='unWrap(document.forms[0].txt.value)'>
        <input name='txt'>
      </form>

      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
    </table>
    <footer>FOOTER</footer>
  </section>
</main>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JavaScript:剥离HTML实体但保留图片标记?

来自分类Dev

HTML Javascript <%=%>标记

来自分类Dev

HTML标记内的Javascript

来自分类Dev

如何使用javascript添加@html标记?

来自分类Dev

如何访问HTML标记中的JavaScript变量?

来自分类Dev

如何使用javascript添加@html标记?

来自分类Dev

如何使用 JavaScript 制作 HTML 标记

来自分类Dev

仅删除锚标记,但保留内部html?

来自分类Dev

使用JavaScript引用HTML内部标签

来自分类Dev

如何通过与Javascript一起使用循环来删除所有HTML标记

来自分类Dev

如何使用XML DOM javascript删除xml父标记?

来自分类Dev

如何通过 JavaScript 删除或清除 Google 地图标记?

来自分类Dev

如何在javascript中删除我的地图标记

来自分类Dev

使用javascript从开始标记到结束标记中删除带有选定值的html元素

来自分类Dev

使用HTML和JavaScript代码在Leaflet中添加新标记之前,请删除以前的标记

来自分类Dev

如何使用JavaScript标记句子

来自分类Dev

如何从javascript访问html的STYLE标记中的class属性?

来自分类Dev

如何在此javascript中使用html标记?

来自分类Dev

混乱的JavaScript标记,如何改善index.html

来自分类Dev

如何在JavaScript中获取HTML标记值(div)

来自分类Dev

如何在标记的HTML文本中添加JavaScript?

来自分类Dev

如何使用javascript在html标记末尾添加文本

来自分类Dev

如何使用JavaScript检索HTML <a>标记的值(无jquery)

来自分类Dev

如何使用javascript或CSS更改HTML标记结构?

来自分类Dev

如何使用jQuery或javascript编辑父标记的html?

来自分类Dev

如何根据JavaScript中的ID找出哪个HTML标记

来自分类Dev

如何在 HTML 标记之前加载 Javascript 函数?

来自分类Dev

Javascript创建,触发锚标记并删除替代标记

来自分类Dev

使用javascript regexp删除嵌套标记insisde <a>标记?

Related 相关文章

  1. 1

    JavaScript:剥离HTML实体但保留图片标记?

  2. 2

    HTML Javascript <%=%>标记

  3. 3

    HTML标记内的Javascript

  4. 4

    如何使用javascript添加@html标记?

  5. 5

    如何访问HTML标记中的JavaScript变量?

  6. 6

    如何使用javascript添加@html标记?

  7. 7

    如何使用 JavaScript 制作 HTML 标记

  8. 8

    仅删除锚标记,但保留内部html?

  9. 9

    使用JavaScript引用HTML内部标签

  10. 10

    如何通过与Javascript一起使用循环来删除所有HTML标记

  11. 11

    如何使用XML DOM javascript删除xml父标记?

  12. 12

    如何通过 JavaScript 删除或清除 Google 地图标记?

  13. 13

    如何在javascript中删除我的地图标记

  14. 14

    使用javascript从开始标记到结束标记中删除带有选定值的html元素

  15. 15

    使用HTML和JavaScript代码在Leaflet中添加新标记之前,请删除以前的标记

  16. 16

    如何使用JavaScript标记句子

  17. 17

    如何从javascript访问html的STYLE标记中的class属性?

  18. 18

    如何在此javascript中使用html标记?

  19. 19

    混乱的JavaScript标记,如何改善index.html

  20. 20

    如何在JavaScript中获取HTML标记值(div)

  21. 21

    如何在标记的HTML文本中添加JavaScript?

  22. 22

    如何使用javascript在html标记末尾添加文本

  23. 23

    如何使用JavaScript检索HTML <a>标记的值(无jquery)

  24. 24

    如何使用javascript或CSS更改HTML标记结构?

  25. 25

    如何使用jQuery或javascript编辑父标记的html?

  26. 26

    如何根据JavaScript中的ID找出哪个HTML标记

  27. 27

    如何在 HTML 标记之前加载 Javascript 函数?

  28. 28

    Javascript创建,触发锚标记并删除替代标记

  29. 29

    使用javascript regexp删除嵌套标记insisde <a>标记?

热门标签

归档