在输入数组元素时在 html 页面中显示数组元素
Display array elements in html page as they are being entered
var contacts =[];
function getInfo() {
var firstName = prompt("Enter first name");
var lastName = prompt("Enter last name");
var emailId = prompt("Enter Email ID");
var phoneNo = prompt("Enter Phone number");
var fname, lname, email, phone;
var person ={
fname : firstName,
lname : lastName,
email : emailId,
phone : phoneNo
}
contacts.push(person);
for(i=0;i<contacts.length;i++){
document.getElementById("mydiv").innerHTML += contacts[i].fname+" "+contacts[i].lname;
}
}
我只想显示新的数组元素。在上面的代码中,每次新元素进入数组时,都会显示所有元素。如何避免重复?我认为使用 DOM 是一种选择。我被困在尝试实现这一点。
你可以
这样做,只添加array
的last element
innerHTML
var contacts =[];
function getInfo() {
var firstName = prompt("Enter first name");
var lastName = prompt("Enter last name");
var emailId = prompt("Enter Email ID");
var phoneNo = prompt("Enter Phone number");
var fname, lname, email, phone;
var person ={
fname : firstName,
lname : lastName,
email : emailId,
phone : phoneNo
};
contacts.push(person);
document.getElementById("mydiv").innerHTML += contacts[contacts.length-1].fname+" "+contacts[contacts.length-1].lname;
}
在添加所有元素之前,您必须清空div。
document.getElementById("mydiv").innerHTML = ''
这是您提出的工作片段。 您只需要从数组中获取最后一个推送的对象并显示名称即可。
此外,您的var fname, lname, email, phone
不是必需的,您可以即时设置对象属性。
var contacts =[];
function getInfo() {
var firstName = prompt("Enter first name");
var lastName = prompt("Enter last name");
var emailId = prompt("Enter Email ID");
var phoneNo = prompt("Enter Phone number");
// var fname, lname, email, phone; //also this is not required. you can set dynamic property names in a object.
var person ={
fname : firstName,
lname : lastName,
email : emailId,
phone : phoneNo
};
contacts.push(person);
var currPerson = contacts[contacts.length-1]; //take the last pushed object from the array
var lastNameFirstChar = currPerson.lname.charAt(0).toUpperCase();
if(!document.getElementById(lastNameFirstChar + "_holder")){
document.getElementById("mydiv").innerHTML += "<div id='"+lastNameFirstChar+"_holder' class='holder'><span class='charValue'>"+lastNameFirstChar+"</span></br></div>";
}
document.getElementById(lastNameFirstChar + "_holder").innerHTML += currPerson.fname+" "+currPerson.lname + "<br/>";
}
<button onclick="getInfo()">Get Person Info</button>
<p>----------------------------</p>
<div id="mydiv">
</div>
编辑:既然你说你可以使用Jquery,我已经用Jquery更新了解决方案。
只需更改:
if(contacts.length!=0){
document.getElementById("mydiv").innerHTML += contacts[contacts.length-1].fname+" "+contacts[contacts.length-1].lname;
}
if 检查用于数组长度为零时的开始
相关文章:
- 在函数中添加数组元素的数值
- 访问JSON对象内部的数组元素
- Mongoose-在更新中删除数组元素
- 在输入数组元素时在 html 页面中显示数组元素
- 显示按表单构建的数组的数组元素总数
- *ngFor 在空数组中显示元素
- Jquery数组.如何同时显示与if语句匹配的数组元素
- 在jQueryUI对话框中显示和格式化数组元素
- 数组元素未在Javascript中显示
- 在php中,找到显示的数组元素,并提供到下一个和上一个的链接
- 当数组是服务内部对象的属性时,如何在页面上逐个显示数组元素
- 使用JavaScript显示数组元素
- ui-选择显示数组元素作为下拉菜单中的选项
- 删除JavaScript数组元素显示未定义
- 如何在.html段落中显示.js文件中的数组元素
- 如何动态显示json数组元素到选择标签
- 在jquery中显示数组元素
- 显示有延迟的数组元素
- 如何在 jQuery 的输入字段中使用空格键逐个显示数组元素
- 不要显示数组元素