0

我不知道是否应该这样做。

这是我的问题:

我创建了一个创建和存储 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
}       
4

2 回答 2

1

假设你有一个 div 数组,它们都具有唯一的 id,一个函数看起来像这样:

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

JavaScript 允许通过从 0 开始的索引访问数组(与大多数现代语言一样)。请注意,第五个元素在 CS 术语中被认为是第四个。

于 2013-01-14T18:45:11.933 回答
0

你的功能是错误的。

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

在这里,您将输入添加到 div,然后将输入添加到数组。appendChild 方法返回对添加节点的引用

您需要分两行进行:

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

然后你需要一个像这样的函数:

function aklertDivbyIndex(theDivs, index){
    return alert(theDivs[index].id);
}
于 2013-01-14T20:49:55.223 回答