jQuery - insertBefore() 用于原始文本

coo*_*guy 5 html javascript jquery

我使用 jQuery 1.11.2 和 jQuery-migrate 1.2.1。这是我正在尝试做的简单示例:

https://jsfiddle.net/bek3wrug/

我想在页面上的某些元素之前插入一些文本(未完全包装到 HTML 标签中),而 jQuery 只插入包装在 HTML 标签内的部分。我无法使用prepend(),因为我不想将其插入某个元素,我需要在之前插入它。

有没有办法让 jQuery 插入所有文本,而不仅仅是包装到 HTML 标签中?

Pra*_*lan 4

由于它包含 textNode,因此您需要使用jQuery.parseHTML方法来生成节点数组。否则,它将被解释为选择器,并且不会发生任何事情,因为使用字符串没有选择任何内容。

$($.parseHTML("Raw text to insert. <span>Text inside span to insert. </span>")).insertBefore("#mySpan")
Run Code Online (Sandbox Code Playgroud)

请参阅: 使用 jQuery 创建新元素

$($.parseHTML("Raw text to insert. <span>Text inside span to insert. </span>")).insertBefore("#mySpan")
Run Code Online (Sandbox Code Playgroud)
$($.parseHTML("Raw text to insert. <span>Text inside span to insert. </span>")).insertBefore("#mySpan")
Run Code Online (Sandbox Code Playgroud)


或者使用before()方法。

$("#mySpan").before("Raw text to insert. <span>Text inside span to insert. </span>")
Run Code Online (Sandbox Code Playgroud)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="myDiv">
  <span id="mySpan">Original text</span>
</div>
Run Code Online (Sandbox Code Playgroud)
$("#mySpan").before("Raw text to insert. <span>Text inside span to insert. </span>")
Run Code Online (Sandbox Code Playgroud)