使用Javascript将元素追加到标记的内容之前
我将用一个例子来说明:我需要用javascript转换以下html使用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&
<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);
}
}())