jQuery - insertBefore() 用于原始文本



我使用 jQuery 1.11.2 和 jQuery-migrate 1.2.1。以下是我正在尝试执行的操作的简单示例:

https://jsfiddle.net/bek3wrug/

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

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

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

$($.parseHTML("Raw text to insert. <span>Text inside span to insert. </span>")).insertBefore("#mySpan")

参考:使用 jQuery 创建新元素。

$($.parseHTML("Raw text to insert. <span>Text inside span to insert. </span>")).insertBefore("#mySpan")
<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>


或者使用before()方法。

$("#mySpan").before("Raw text to insert. <span>Text inside span to insert. </span>")

$("#mySpan").before("Raw text to insert. <span>Text inside span to insert. </span>")
<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>

使用函数 before

$("#mySpan").before("Raw text to insert. <span>Text inside span to insert. </span>")

例:

$("#mySpan").before("Raw text to insert. <span>Text inside span to insert. </span>")
<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>

最新更新