我不知道是否应该这样做。
这是我的问题:
我创建了一个创建和存储10个div元素(具有唯一ID)的函数。
我想创建另一个函数,它将一个数组作为参数,并提醒第5个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 :(得分:1)
假设你有一个所有具有唯一ID的div数组,函数看起来像这样:
function alertFifth(listOfDivs) {
alert(listOfDivs[4].id);
}
JavaScript允许通过索引从0开始访问数组(与大多数现代语言一样)。请注意,第五个元素被认为是CS中的第4个元素。
答案 1 :(得分: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);
}