2013-02-12 80 views
-3

我必須動態地在javascript中使用for循環打印10個值。這裏我拿標籤進行打印。現在使用JavaScript動態獲取標籤中的選定值

當我點擊標籤上特定的文本,我可以告訴一個警報,該文本名稱,

任何一個可以幫助我如何做到這一點。

<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> 
+3

顯示一些代碼。閱讀此:http://whathaveyoutried.com – 2013-02-12 08:42:25

+0

獨自一人走,這是危險的,帶着[小提琴](http://jsfiddle.net/WLKm8/)與你;) – C5H8NNaO4 2013-02-12 09:04:04

+0

@Glutamat謝謝你,工作好 – User 2013-02-12 09:38:35

回答

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:按照下面本傑明Gruenbaum的評論,似乎的addEventListener並沒有被IE支持(請參閱MSIE and addEventListener Problem in Javascript?)。根據經紀人的建議,重做jsfiddle來代替使用onclick。

+1

沒問題 - 請你可以標記這個答案爲接受,如果它的幫助? – RainbowFish 2013-02-12 09:39:02

+0

不好的答案,將屬性設置爲onclick是_eval_的一種形式,應該避免使用 – 2013-02-12 10:02:32

+0

請勿使用帶有「onclick」的字符串。分配函數 – 2013-02-12 10:02:35

相關問題