我必须使用for循环在 javascript 中动态打印10个值。在这里,我使用标签进行打印。
现在,当我点击标签上的特定文字时,我可以显示一个带有该文字名称的警告
任何人帮助我如何做到这一点。
<html>
<head>
<script type = "text/javascript">
var x = "";
function checkCookie(){
var arr = new Array("One","Two","Three");
for(var i=0; i<arr.length; i++) {
x = x + arr[i] + "<br>" + "<br>";
document.getElementById("idval").innerHTML = x;
}
}
function getItem(){
// here i want to display the selected label item
}
</script>
</head>
<body onload = "checkCookie()">
<label id = "idval" onclick = "getItem()"> </label>
</body>
</html>
答案 0 :(得分:3)
从你的问题描述中可以清楚地知道你需要什么。如果你想要的是动态创建标签,并有权访问他们的onclick事件;看看Javascript函数appendChild和setAttribute。我创建了一个JSfiddle来演示你可能需要的东西:
function createLabels() {
for(var i=0; i<10; i++) {
var label = document.createElement('label');
label.innerHTML = "item " + i;
label.onclick = onClick;
document.body.appendChild(label);
}
}
function onClick(e){
alert(e.srcElement.innerHTML)
}
编辑1 :添加onclick属性被视为不良做法。改为使用事件监听器重写答案。
编辑2 :根据Benjamin Gruenbaum的评论,IE似乎不支持AddEventListener(请参阅MSIE and addEventListener Problem in Javascript?)。根据dystroy的建议,重写jsfiddle以使用onclick。