-4

我试过这样的jQuery代码:

var a=$("<a>1</a>")
a=a.before("<b></b>")
a[0].outerHTML

结果仍然是<a>1</a>,我希望得到<b></b><a>1</a>..似乎.before根本不起作用..

===

我知道如果它是 DOM 的一部分,那a.before会很好用。a但是如果a没有插入 DOM 并且我需要在之前插入一些东西a(不是 wrap a)怎么办?这就是我使用a=a.before("<b></b>"). 有没有人知道如何在将 jQuery 对象插入 DOM 之前就地更改它?

4

2 回答 2

1

问题是a.before返回原始集合,它只包含a你在其中插入的任何内容,而不是它之前(或之后或周围)。尝试使用虚拟容器,更改beforebyprepend和 readinnerHTML而不是outerHTML

var a = $("<a>1</a>");
var x = $('<dummy/>').append(a);
x.prepend("<b></b>"); 
console.log(x[0].innerHTML);
于 2013-08-01T13:30:47.263 回答
-2

您可以尝试对现有 HTML 元素使用相同的代码来代替“var a=$("1")”。我认为这应该完美无缺!

于 2013-08-01T13:10:40.383 回答