我试过像这样的jQuery代码:
var a=$("<a>1</a>")
a=a.before("<b></b>")
a[0].outerHTML
结果仍然是<a>1</a>
,我希望得到<b></b><a>1</a>
..似乎.before
根本不起作用..
===
我知道如果a.before
是DOM的一部分,a
将会很好用。但是如果a
没有插入DOM并且我需要在a
之前插入一些东西(不包裹a
),该怎么办?这就是我使用a=a.before("<b></b>")
的原因。有没有人有关于如何在将jQuery对象插入DOM之前就地更改它的想法?
答案 0 :(得分:1)
问题是a.before
会返回原始集合,该集合仅包含a
以及您在内部插入的内容,但不会在其之前(或之后或之后) 。尝试使用虚拟容器,按before
更改prepend
并阅读innerHTML
而不是outerHTML
:
var a = $("<a>1</a>");
var x = $('<dummy/>').append(a);
x.prepend("<b></b>");
console.log(x[0].innerHTML);
答案 1 :(得分:-2)
您可以尝试使用与现有HTML元素相同的代码来代替“var a = $(”1“)”。我认为这应该完美无缺!