-3

forループを使用して、 javascriptで10個の値を動的に出力する必要があります。ここで、印刷用のラベルを取ります。

ラベルの特定のテキストをクリックすると、そのテキスト名のアラートを 1 つ表示できます。

これを行う方法を教えてください。

<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 のコメントによると、AddEventListener は IE でサポートされていないようです ( MSIE と addEventListener Problem in Javascript?を参照してください)。dystroy の提案に従って、代わりに onclick を使用するように jsfiddle を作り直しました。

于 2013-02-12T08:55:31.350 に答える