0

getElementByIdから元々取得された文字列が渡されている関数があり、その文字列の値と同じ名前のオブジェクトがあるとします。そのオブジェクトを呼び出す方法はありますか?要素のIDからその値を取得するまで、どのオブジェクトが必要かわかりません。

例えば:

StartingFunction(SomeID){
someVariable = document.getElementById(SomeID).id
somefuntion(someVariable)
}

someFunction(ElementID){
// need to call Object.Value of whichever object is named the same as the value of   
//ElementID here

}

ElementIDは単なる変数であり、オブジェクトではないため、ElementID.Valueは明らかに機能しません。

4

5 に答える 5

1

document.getElementById() を何らかの関数に渡しているため、ElementID と呼ぶのは実際には要素そのものです。

于 2009-08-12T14:36:27.617 に答える
1

要素を someFunction に直接渡すことができます。

例えば:

StartingFunction(SomeID){
  var element = document.getElementById(SomeID);
  somefuntion(element);
}

someFunction(element){
  alert(element.id);
  alert(element.value);
  // Any other processing you want to do with element
}

または、id から要素を取得できるようにする必要がある場合は、単に使用しますgetElementById

someFunction(id) {
  var element = document.getElementById(id);
  alert(element.value);
  // Any other processing you need to do with the element DOM object
}
于 2009-08-12T14:40:53.007 に答える
1

そうしないでください。これは悪い設計であり、途方もない苦痛と見つけにくいバグにつながるでしょう。

代わりに、参照するすべてのオブジェクトを持つグローバル オブジェクトを使用します。

var valueMap = new Object();

function setValue(id, valueObject) {
    valueMap[id] = valueObject;
}

function someFunction(id) {
    return valueMap[id].Value;
}
于 2009-08-12T14:41:21.133 に答える
1

これは意味がありません:

someVariable = document.getElementById(SomeID).id

ID SomeID を持つ要素の ID を取得しています... SomeID を使用しないのはなぜですか?

ID SomeID を持つオブジェクトの value 属性が必要な場合は、次のようにします。

document.getElementById(SomeID).value
于 2009-08-12T14:42:16.983 に答える
1

関数がグローバルスコープにある場合window[ElementID] 、たとえば次のことができます。

   someFunction(ElementID){
        return window[ElementID].value;

    }
于 2009-08-12T14:37:45.290 に答える