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

すべて一意のIDを持つdivの配列があるとすると、関数は次のようになります。

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

JavaScriptでは、(ほとんどの現代言語と同様に)0から始まるインデックスによって配列にアクセスできます。5番目の要素はCS用語では4番目と見なされることに注意してください。

于 2013-01-14T18:45:11.933 に答える
0

あなたの機能は間違っています。

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

ここでは、入力をdivに追加してから、入力を配列に追加します。appendChildメソッドは、追加されたノードへの参照を返します

あなたは2行でそれをする必要があります:

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 に答える