我期待替换DOM中的元素.
例如,有一个<a>我想用替换替换的元素<span>.
我该怎么做呢?
我用javascript库制作一个网站.如果用户在下拉列表(选择)框中选择一个选项,则必须添加标签和文本框.这是我使用appendChild选项.appenChild选项的唯一问题是始终在used元素中的项之后添加项.这是我的代码:
var newFreeformLabel = document.createElement('label');
newFreeformLabel.innerHTML = 'Omschrijving:';
var newFreeformField = document.createElement('input');
newFreeformField.className = 'textfield';
newFreeformField.name = 'factuur_orderregel[]';
var newFreeformSpacer = document.createElement('div');
newFreeformSpacer.className = 'spacer';
container.appendChild(newFreeformLabel);
container.appendChild(newFreeformField);
container.appendChild(newFreeformSpacer);
Run Code Online (Sandbox Code Playgroud)
这里容器是必须添加项目的元素.唯一的问题是项目被添加到元素的末尾,我想在html元素的开头添加项目.
我很想念jQuery.我正在开展一个项目,我需要再次使用优质的纯粹Javascript弄脏手.
我有这种情况:
parent
child1
child2
child3
Run Code Online (Sandbox Code Playgroud)
通过javascript,我希望能够在任何这些孩子之前或之后插入一个新节点.虽然javascript有insertBefore,但没有insertAfter.
之前插入可以正常工作以在其中任何一个之前插入一个节点:
parent.insertBefore(newNode, child3)
Run Code Online (Sandbox Code Playgroud)
但是如何在child3之后插入一个节点?我现在正在使用它:
for (i=0,i<myNodes.length,i++){
myParent.insertBefore(newNode, myNodes[i+1])
}
Run Code Online (Sandbox Code Playgroud)
那就是在我的每个节点的下一个兄弟节点之前插入我的newNode(意味着它将它放在每个节点之后).
当它到达最后一个节点时,myNodes[i+1]变为undefined我现在正在尝试访问不存在的数组索引.
我认为'错误了,但似乎工作得很好,在那种情况下,我的节点确实插在最后一个节点之后.
但那是对的吗?我现在正在几个现代浏览器中测试它,看起来没有看似不好的效果.有没有更好的办法?