我使用 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>