Javascript 是否可以使用insertAdjacentHTML()插入标记以包装某个元素?
我正试图添加一个标签和跨度标签单选按钮,以便它的风格。我希望输入和跨度标记被包装在标签标记内 注意:我正在对现有模板进行设计更改。应用程序使用XSLT清除已安装模板中的内部版本。我曾尝试在XSLT结构中添加标签和span标记,但最终导致最终构建崩溃。唯一让我添加这些标记的是在运行时插入它们Javascript 是否可以使用insertAdjacentHTML()插入标记以包装某个元素?,javascript,html,Javascript,Html,我正试图添加一个标签和跨度标签单选按钮,以便它的风格。我希望输入和跨度标记被包装在标签标记内 注意:我正在对现有模板进行设计更改。应用程序使用XSLT清除已安装模板中的内部版本。我曾尝试在XSLT结构中添加标签和span标记,但最终导致最终构建崩溃。唯一让我添加这些标记的是在运行时插入它们 function radio_button() { var iframe = document.getElementById('questionFrame'); var innerDoc = (iframe.
function radio_button() {
var iframe = document.getElementById('questionFrame');
var innerDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document;
var inputs = innerDoc.getElementsByTagName("input");
for(var i = 0; i < inputs.length; i++) {
if (inputs[i].type=='radio' ) {
var radio=inputs[i];
radio.insertAdjacentHTML('beforebegin', '<label>');
radio.insertAdjacentHTML('afterend', '<span></span></label>');
}
}
}
功能单选按钮(){
var iframe=document.getElementById('questionFrame');
var innerDoc=(iframe.contentDocument)?iframe.contentDocument:iframe.contentWindow.document;
var inputs=innerDoc.getElementsByTagName(“输入”);
对于(var i=0;i
我的预期结果是这样
<label><input type="Radio" name="answer" value="x9" /><span><span></label>
但是我得到了这个
<label></label><input type="Radio" name="answer" value="x9" /><span><span>
有没有办法将输入标记包装在标签标记内?谢谢。感谢您的建议。您可以尝试
cloneNode()
创建所需的代码段,然后对新创建的元素使用replaceChild
document.querySelectorAll('input[type=“radio”]”)
.forEach(功能(收音机){
让label=document.createElement('label');
设span=document.createElement('span');
label.appendChild(radio.cloneNode());
标签。追加子项(span);
radio.parentNode.replaceChild(标签,radio);
});
让labels=document.querySelectorAll('label');
console.log(标签[0]。innerHTML,标签)代码>
您可以尝试cloneNode()
创建所需的代码段,然后对新创建的元素使用replaceChild
document.querySelectorAll('input[type=“radio”]”)
.forEach(功能(收音机){
让label=document.createElement('label');
设span=document.createElement('span');
label.appendChild(radio.cloneNode());
标签。追加子项(span);
radio.parentNode.replaceChild(标签,radio);
});
让labels=document.querySelectorAll('label');
console.log(标签[0]。innerHTML,标签)代码>