Javascript 无法正确使用InsertAdjaContement
我想在每个输入文本和电子邮件字段后显示消息“此输入字段不能为空”。但是,我没有这样做。最后一个输入字段(即卡号)后仅显示一条消息 你能帮我查出发生了什么事吗?我试了一个小时。 多谢各位Javascript 无法正确使用InsertAdjaContement,javascript,Javascript,我想在每个输入文本和电子邮件字段后显示消息“此输入字段不能为空”。但是,我没有这样做。最后一个输入字段(即卡号)后仅显示一条消息 你能帮我查出发生了什么事吗?我试了一个小时。 多谢各位 //javascript file const elementAction = { createMessage: function(insertedElement, value, elementCollection, position ){ const newElement= docum
//javascript file
const elementAction = {
createMessage: function(insertedElement, value, elementCollection, position ){
const newElement= document.createElement(insertedElement);
newElement.innerHTML= value;
elementAction.insertAlert(position, elementCollection, newElement);
},
insertAlert: function(position, elementCollection, insertedElement){
for(let i=0; i<elementCollection.length; i++){
elementCollection[i].insertAdjacentElement(position, insertedElement);
}
},
get: function(element){
const elementCollection = document.querySelectorAll(element);
return elementCollection;
}
};
const inputFieldCollection = elementAction.get("[type='email'], [type='text']");
elementAction.createMessage('p', 'This input field cannot be blank', inputFieldCollection, 'afterend');
//javascript文件
常量元素动作={
createMessage:函数(插入删除、值、元素集合、位置){
const newElement=document.createElement(insertedElement);
newElement.innerHTML=值;
elementAction.insertAlert(位置、elementCollection、新元素);
},
insertAlert:函数(位置、元素集合、insertedElement){
对于(设i=0;i您需要为elementCollection
中的每个元素创建newElement
——因为您只创建了一个“新元素”,并且insertAdjacentElement
将现有元素移动到新位置-将createMessage
和insertAlert
组合到一个函数中,并将文档放入for循环中。createElement
代码哦,我按照您的指示成功地完成了此操作。非常感谢。但我并不完全理解坚持背后的基本原理。你是说const newElement=document.createElement(insertedElement)不是副本,因此无法重复使用?也许我对元素对象感到困惑。也许我将其与库JQuery混合使用了…newElement是一个元素…单个元素…它不能存在于多个位置…@JaromandaX我明白了。非常感谢您的帮助。我很感激。您需要为每个元素创建newElement
元素集合中的元素-因为您只创建了一个“新元素”,并且insertAdjacentElement
将现有元素移动到新位置-将createMessage
和insertAlert
组合到一个函数中,并将文档放入for循环中。createElement
代码哦,我按照您的指示成功地完成了此操作。非常感谢。但我并不完全理解坚持背后的基本原理。你是说const newElement=document.createElement(insertedElement)不是副本,因此无法重复使用?也许我对元素对象感到困惑。也许我将其与库JQuery混合使用了…newElement是一个元素…一个元素…它不能存在于多个地方…@JaromandaX我明白了。非常感谢您的帮助。我非常感谢。
//HTML file
<label for="name">Name:</label>
<input type="text" id="name" name="user_name">
<label for="mail">Email:</label>
<input type="email" id="mail" name="user_email">
<label for="cc-num">Card Number:</label>
<input id="cc-num" name="user_cc-num" type="text">