使用Javascript将元素追加到标记的内容之前

使用Javascript将元素追加到标记的内容之前,javascript,html,dom,appendchild,Javascript,Html,Dom,Appendchild,我将用一个例子来说明:我需要用javascript转换以下html <a>Text 1</a> <a>Text 2</a> <a>Text 3</a> ... Text 1 文本2 文本3 ... 编码 <a><input/>Text 1</a> <a><input/>Text 2</a> <a><input/>Text 3&

我将用一个例子来说明:我需要用javascript转换以下html

<a>Text 1</a>
<a>Text 2</a>
<a>Text 3</a>
...
Text 1
文本2
文本3
...
编码

<a><input/>Text 1</a>
<a><input/>Text 2</a>
<a><input/>Text 3</a>
...
Text 1
文本2
文本3
...
我不知道如何使用createElement、appendChild或insertBefore/After实现这一点。

.insertBefore和.firstChild 您可以在每个锚点的第一个子元素之前插入新的输入元素:

// Gather up a reference to all anchors
var anchors = document.getElementsByTagName("a"), inputEl;
// Cycle over all of them
for ( var i = 0; i < anchors.length; i++ ) {
  // Create a new input field
  inputEl = document.createElement("input");
  // Insert it before the first child of the anchor
  anchors[i].insertBefore( inputEl, anchors[i].firstChild );
}
Modify.innerHTML
var a=document.getElementsByTagName(“a”),
c=a.长度;
而(c--)a[c].innerHTML=”“+a[c].innerHTML;
jQuery 如果您已经在您的网站上使用了,您可以使用它来缩短此时间:

$("a").prepend("<input />");
$(“a”)。前缀(“”);
请注意,仅为此而包含库是不值得的。

没有那么难:)


jQuery是您的选择吗?此外,如果a href.中的输入是无效的html..可能重复,请将其视为字符串。抓取HTML,使用.replace(),将其插回。我知道,使用jQuery很简单,但这次我不需要它。
var a = document.getElementsByTagName("a"), 
    c = a.length;

while ( c-- ) a[c].innerHTML = "<input />" + a[c].innerHTML;
$("a").prepend("<input />");
​(function() {
    var links = document.getElementsByTagName("a"),
        input,
        i = links.length;

    while (i--) {
        input = document.createElement("input");
        links[i].insertBefore(input, links[i].firstChild);
    }
}())​