2013-01-14 78 views
0

我不知道這是否應該完成。javascript:從數組中提取元素

這裏是我的問題:

我創建了創建並存儲10個DIV elemets的函數(唯一ID)。

我想製作另一個函數,它將一個數組作爲其參數並提醒第五個div(或任何特定的div元素)的ID。

請幫

function createText(){ 
    var combo = []; 
    for(i =0; i<=5 ; i++) { 
     var newText = document.createElement("input"); 
     newText.type = "text"; 
     newText.id = "text"+i; 
     newText.style.width ="20px"; 
     newText.style.height ="20px"; 


     var newDiv = document.createElement("div"); 
     newDiv.type = "div"; 
     newDiv.id = "div"+i; 
     newDiv.style.backgroundColor ="red"; 
     newDiv.style.cssFloat = "left"; 

     document.getElementById("tryingin").appendChild(newDiv.cloneNode()); 

     combo.push(document.getElementById("div"+i).appendChild(newText.cloneNode())); 
    } 

    alert(combo); 
} 


function alert(arr) { 
    //now I want to alert the id of the div(or textbox) here 
}  
+0

請張貼一些代碼。 – j08691

+0

查看'array.slice(...)'函數 – asawyer

+0

好的,我正在檢查array.slice() – user1974333

回答

0

您的功能錯誤。

combo.push(document.getElementById("div"+i).appendChild(newText.cloneNode())); 

在這裏,您將輸入添加到div,然後將輸入添加到數組。 The appendChild method returns a reference to the added node

需要在兩行那樣做:

document.getElementById("div"+i).appendChild(newText.cloneNode()); 
combo.push(document.getElementById("div"+i)); 

然後你需要的功能,像這樣:

function aklertDivbyIndex(theDivs, index){ 
    return alert(theDivs[index].id); 
} 
1

假設你都通過唯一的ID的div的數組,函數會是這個樣子:

function alertFifth(listOfDivs) { 
    alert(listOfDivs[4].id); 
} 

JavaScript允許接入到陣列的指數開始0(與大多數現代語言一樣)。請注意,第五個元素被認爲是CS中的第四個元素。

+1

它仍然是數組的第五個元素,它只存在於索引'4'。除非你來自「第零元素」學派? :) –

+0

問題是'或任何特定的div元素' – ic3b3rg

+0

這給我的文本框的ID。沒關係。我想要div的id – user1974333