更改未命名的元素';使用javascript创建html标记类型
所以我有一个由另一个进程创建的元素,它是在一个类似于更改未命名的元素';使用javascript创建html标记类型,javascript,html,dom,Javascript,Html,Dom,所以我有一个由另一个进程创建的元素,它是在一个类似于 var their_element = document.createElement("div"); /* Lots of stuff is done to their_element */ 这个对象稍后会传递给我。它还没有被附加到任何地方。问题是,当它最终到达html时,我需要它是不同的html标记类型,例如: <form></form> 不起作用 此外,这也不起作用: their_element.tagName
var their_element = document.createElement("div");
/* Lots of stuff is done to their_element */
这个对象稍后会传递给我。它还没有被附加到任何地方。问题是,当它最终到达html时,我需要它是不同的html标记类型,例如:
<form></form>
不起作用
此外,这也不起作用:
their_element.tagName = "FORM"
var outside = their_element.outerHTML;
outside = outside.replace(/div/g, 'form');
their_element.outerHTML = outside;
同样,这也不起作用:
their_element.tagName = "FORM"
var outside = their_element.outerHTML;
outside = outside.replace(/div/g, 'form');
their_element.outerHTML = outside;
所有这些在追加时仍将其保留为DIV。
(我不是在寻找jQuery)检查这一点以获得跨浏览器的兼容性,但是元素上有一些属性和方法可能会有用。特别是,
Element.attributes
,Element.hasaAttributes()
,以及Element.setAttribute()
。见:
我不打算在这里使用ES6,所以我们不必担心传输。如果需要,您可以更新:
var el=document.createElement('div');
el.id=“随机”;
el.style.background=“红色”;
el.style.width=“200px”;
el.style.padding=“10px”;
el.style.margin=“10px”;
el.innerHTML=“”;
log({“Element 1”:el});
var newEl=document.createElement('form');
log({“转换前的元素2”:newEl})
if(el.hasAttributes()){
var attr=el.attributes
对于(变量i=0;i document.body.append(newEl)代码>我不确定您在这里试图做什么,似乎您可能在给问题增加复杂性?这没有真正的意义…如果您需要
,请使用document.createElement(“表单”)
。也许,将节点名传递给函数并使用document.createElement(nodeName)
。重点是,元素已经完成了一些工作,包括样式设置、添加内容、分配id等。添加它的脚本几乎超出了可编辑的范围,为什么需要将此
转换为
?可以将div附加到表单中吗?div是传递元素的函数的默认值。我目前正在做的函数是尝试扩展它可以做什么,以便它也可以用来制作窗体、跨距等。表单只是一个例子。它是关于扩展一些其他代码的功能。虽然它可能不适合每个用例,但使用您的解决方案并以el=newEl代码>为我做这件事。令人惊叹的!