-3

我必须使用 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>
4

1 回答 1

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)
}

http://jsfiddle.net/R4abH/2/

编辑 1:添加 onclick 属性被认为是不好的做法。改用事件侦听器重做答案。

编辑 2:根据 Benjamin Gruenbaum 在下面的评论,IE 似乎不支持 AddEventListener(请参阅MSIE 和 addEventListener Problem in Javascript?)。根据dystroy的建议,重新设计了jsfiddle以使用onclick。

于 2013-02-12T08:55:31.350 回答