Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以使用insertAdjacentHTML()插入标记以包装某个元素?_Javascript_Html - Fatal编程技术网

Javascript 是否可以使用insertAdjacentHTML()插入标记以包装某个元素?

Javascript 是否可以使用insertAdjacentHTML()插入标记以包装某个元素?,javascript,html,Javascript,Html,我正试图添加一个标签和跨度标签单选按钮,以便它的风格。我希望输入和跨度标记被包装在标签标记内 注意:我正在对现有模板进行设计更改。应用程序使用XSLT清除已安装模板中的内部版本。我曾尝试在XSLT结构中添加标签和span标记,但最终导致最终构建崩溃。唯一让我添加这些标记的是在运行时插入它们 function radio_button() { var iframe = document.getElementById('questionFrame'); var innerDoc = (iframe.

我正试图添加一个标签和跨度标签单选按钮,以便它的风格。我希望输入和跨度标记被包装在标签标记内

注意:我正在对现有模板进行设计更改。应用程序使用XSLT清除已安装模板中的内部版本。我曾尝试在XSLT结构中添加标签和span标记,但最终导致最终构建崩溃。唯一让我添加这些标记的是在运行时插入它们

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,标签)