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">