我將添加一個聯繫人列表,並將它們放入一個基於第一個字符lname的div中。如果div不存在,它將被動態創建。我想在點擊名稱時顯示聯繫信息。在下面的實現中,showMe()
函數無法顯示聯繫人信息。Javascript onClick()函數不起作用
<html>
<head>
<style>
.holder{
background-color:yellow;
margin-top:10px;
width: 300px;
}
.holder span{
background-color: Green;
height:20px;
color:white;
}
</style>
<script>
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 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>"+lastNameFirstChar+"</span></br></div>";
}
//document.getElementById(lastNameFirstChar + "_holder").innerHTML += currPerson.fname+" "+currPerson.lname + "<br/>";
document.getElementById(lastNameFirstChar + "_holder").innerHTML += "<span onclick='showMe(" + currPerson.id + ")'>" + currPerson.fname + " " + currPerson.lname + "</span><br/>";
}
function showMe(id) {
alert(id);
var person = contacts[id]; /* currently corresponds to array index, could be a property lookup with underscore or whatever */
var contactInfo = person.fname+" "+person.lname+"</br> "+person.email+"</br>"+person.phone;
target.innerHTML = "<div>" + contactInfo + "</div></br>";
}
</script>
</head>
<body>
<button onclick="getInfo()">Get Person Info</button>
<p>----------------------------</p>
<div id="mydiv">
</div>
</body>
</html>
@ScottMarcus定義什麼id該行調用'文件前加入這一行。 getElementById(lastNameFirstChar +「_holder」)。innerHTML + =「」+ currPerson.fname +「」+ currPerson.lname +「
」;' – Droidr
這是r最後不是解決你的問題的最好方法。而不是內聯的HTML事件處理程序,您應該使用element.addEventListener。而不是使用JavaScript來編寫新的HTML元素並將它們連接起來,您應該通過document.createElement創建元素,或者預先創建元素,但不顯示。然後,JavaScript只需將其連接到事件處理程序(再次使用addEventListener)。 –
你的人沒有'id'屬性,'showMe()'中的'target'是'undefined' – Andreas