2014-04-23 109 views
0

對於愚蠢的標題我很抱歉,但我真的不知道如何命名我的問題。在JS代碼中調用HTML對象

所以基本上,我有我的代碼中的一些功能,一個具體需要兩個div執行。到目前爲止一切正常,但是當我需要用變量調用for循環中的函數時,我無法調用它。要問這個問題,我需要你看一些代碼。這是包含數據的對象。

var data = { 
'coords' : [[784, 42], [802, 324], [128, 365], [710, 166], [610, 391], [513, 283], [544, 48], [323, 204], [316, 50], [938, 52]], 
'walkthrough' : [8, 6, 0, 9, 3, 1, 5, 4, 7, 2], 
'highscore' : 2283 
}; 

這是在正確的位置創建對象的功能,我可以在其中獲得我的div1,div2等。

(function(){ 

    for (var i = 0; i < data.coords.length; i += 1){ 
     var span = document.createElement("span"); 
     span.innerHTML = "<img src=\"Untitled-4.jpg\" alt=\"\" width=\"35\" height=\"35\" id=\"div" + i + "\">"; 
     span.style.position = "absolute"; 
     span.style.left = data.coords[i][0] + "px"; 
     span.style.top = data.coords[i][1] + "px"; 
     document.body.appendChild(span); 
    } 
}()); 

後另一筆交易完成後我點擊一個按鈕來執行此功能

$(r).click(function() { 

     for(var j = 0; j<data.walkthrough.length; j++){ 
          connect(div[j], div[j+1], "#F0F", 3) 
      } 
     }); 

的問題是,我無法找到一個辦法把它寫在這樣的代碼,使我的JS瞭解它是關於哪個div的。我試過$(「div」+ data.walkthrough [j]),但沒有奏效。我不能讓id只是數字,因爲我不能調用另一個我需要的函數。

任何人有任何想法,如何寫在div [J]裏面的for循環,使之執行(它一個jQuery inclueded。)

對於整個代碼 -

http://jsfiddle.net/2dtxj/

如果有什麼不清楚的地方(我擔心情況會如此,因爲有時我甚至無法理解我自己:D)我會回答有關問題本身的問題。

在此先感謝 編輯:問題是,當我輸入連接(DIV1,DIV2,「some_color」,5)完美的作品,但我無法弄清楚如何根據反對

更改數字

回答

1

如果您的ID都是唯一的,這應該工作:

connect($('#div' + j).get(0), $('#div' + (j + 1)).get(0), "#F0F", 3); 

,如果你試圖通過connect-function DOM對象。

+0

對不起,我以前的評論。其實工作正常!謝謝! – user3095198

1

我想你忘了在前面的#,所以它是:中

$("#div" + data.walkthrough[j]) 

代替:

$("div" + data.walkthrough[j]) 
+0

是的,當我寫這個問題時我忘了它,但仍然爲什麼它不起作用 – user3095198