为什么赢了';JavaScript函数是否创建HTML元素?
我有一个方法,就是在另一个div中创建div。。。但是它不会起作用 方法如下:为什么赢了';JavaScript函数是否创建HTML元素?,javascript,html,dom,Javascript,Html,Dom,我有一个方法,就是在另一个div中创建div。。。但是它不会起作用 方法如下: populateSquares(){ let relatedTagToPopulation = document.getElementById("questionp"); let whatTextIs = relatedTagToPopulation.textContent; for (let u=0;u<this.stemQuestions.length;u++){ i
populateSquares(){
let relatedTagToPopulation = document.getElementById("questionp");
let whatTextIs = relatedTagToPopulation.textContent;
for (let u=0;u<this.stemQuestions.length;u++){
if (this.stemQuestions[u]==whatTextIs){
var populateSquaresPertinentInt = u;
}
}
for (let i=0;i<this.stemAnswers.length;i++){
if (i==populateSquaresPertinentInt){
let numberOfSquaresToAdd = this.stemAnswers[i].length;
for (let j=0;j<numberOfSquaresToAdd;j++){
let elToAdd = document.createElement("<div id='ans"+j+"' class='lans'></div>");
let elToAddInto = document.getElementById("answeri");
elToAddInto.appendChild(elToAdd);
}
}
}
}
populateSquares(){
让relatedTagToPopulation=document.getElementById(“问题P”);
设whatTextIs=relatedTagToPopulation.textContent;
对于(让u=0;u如果您使用的是JavaScript,则应遵循文档:,此处:
如果您使用的是jQuery,则可以使用:
let elToAdd = jQuery("<div id='ans"+j+"' class='lans'></div>")
让elToAdd=jQuery(“”)
如果您使用的是JavaScript,则应遵循文档:,此处:
如果您使用的是jQuery,则可以使用:
let elToAdd = jQuery("<div id='ans"+j+"' class='lans'></div>")
让elToAdd=jQuery(“”)
创建标记的三种方法
以下示例都做了相同的事情:✱
创建一个
唯一的参数是标记名(例如“DIV”
,“SPAN”
,“IFRAME”
,等等)。创建后,需要将其添加到DOM中:
这是一个古老但稳定的方法,但创建一个裸体标签需要两行代码。需要更多代码来分配属性和内容。
此属性将从目标标记内的给定字符串中解析标记。如果使用=
运算符,则目标标记的所有内容将被htmlString
覆盖。如果使用+=
运算符,则htmlString
将附加到目标标记内的内容
第二个参数是要插入的htmlSting
main{
显示:表格;
边框:3倍脊灰;
填充:2x10px 10px;
}
h1{
字体:900小盘1.5rem/1塔荷马;
边际下限:8px
}
氢{
字体:700小盘1.2rem/1塔荷马;
边际下限:8px
}
部分{
边框:2倍实心#000;
填充:2px 8px 8px;
}
文章{
字体:400 1rem/1.25 Arial;
}
t:以前{
内容:属性(id)“:”;
字号:700;
}
文件
创建标记的三种方法
以下示例都做了相同的事情:✱
创建一个
唯一的参数是标记名(例如“DIV”
,“SPAN”
,“IFRAME”
,等等)。创建后,需要将其添加到DOM中:
这是一个古老但稳定的方法,但创建一个裸体标签需要两行代码。需要更多代码来分配属性和内容。
此属性将从目标标记内的给定字符串中解析标记。如果使用=
运算符,则目标标记的所有内容将被htmlString
覆盖。如果使用+=
运算符,则htmlString
将附加到目标标记内的内容
第二个参数是要插入的htmlSting
main{
显示:表格;
边框:3倍脊灰;
填充:2x10px 10px;
}
h1{
字体:900小盘1.5rem/1塔荷马;
边际下限:8px
}
氢{
字体:700小盘1.2rem/1塔荷马;
边际下限:8px
}
部分{
边框:2倍实心#000;
填充:2px 8px 8px;
}
文章{
字体:400 1rem/1.25 Arial;
}
t:以前{
内容:属性(id)“:”;
字号:700;
}
文件
createElement
采用标记名,如“div”
,而不是HTML。您可以单独分配属性。createElement
采用标记名,如“div”
,而不是HTML。您可以单独分配属性。请注意,id
属性也由属性反映,因此您可以执行:elToAdd.id=“ans”+j
请注意,id
属性也由属性反映,因此您可以执行:elToAdd.id=“ans”+j
Nope,#2根本不做同样的事情。从DOM的角度来看,它确实删除了元素及其所有子元素,然后附加一个新元素,具有相同的标记,以及与上一个和一个新元素的子元素共享相同标记的新元素。如果有任何变量指向这些子元素之一,则他们指向的e元素现在已经不在文档中了。如果你有任何事件侦听器,它们就不在了。请注意,先生,谢谢。@kaido做了。innerText
和。textContent
删除了+=
中的任何内容?不,2完全没有做同样的事情。从DOM的角度看,它确实删除了元素及其所有子元素,然后附加一个具有相同标记的新元素,以及与上一个元素和新元素的子元素共享相同标记的新元素。如果您有任何变量指向这些子元素之一,则它们指向的元素现在已关闭文档。如果您有任何事件侦听器,则它们已不存在。请注意,先生,谢谢。@kaido有.innerText
和.textContent
用+=
清除任何内容?
let elToAdd = jQuery("<div id='ans"+j+"' class='lans'></div>")
const post = document.createElement("ARTICLE");
post.className = "post";
document.getElementById('main').appendChild(post);
document.querySelector('main').innerHTML += `<article class='post'></article>`;
"beforebegin" <div id="target"> "afterbegin" text content "beforeend" </div> "afterend"
document.getElementsByTagName('MAIN')[0].insertAdjacentHTML('afterbegin', `
<article class='post'></article>
`);