假设我有一个函数正在传递一个最初来自getElementById的字符串,并且我有一个与该字符串值相同的对象,有没有办法调用该对象?在从元素的ID中获取该值之前,我不知道我想要哪个对象。
For Instance:
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.Value显然不起作用,因为ElementID只是一个变量,而不是一个对象......
答案 0 :(得分:1)
你所谓的ElementID实际上是元素本身,因为你将document.getElementById()传递给某个函数。
答案 1 :(得分:1)
如果函数在全局范围内,您只需window[ElementID]
例如:
someFunction(ElementID){
return window[ElementID].value;
}
答案 2 :(得分: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
}
答案 3 :(得分:1)
不要那样做。这是糟糕的设计,将导致巨大的痛苦和难以发现的错误。
相反,请使用包含要引用的所有对象的全局对象。
var valueMap = new Object();
function setValue(id, valueObject) {
valueMap[id] = valueObject;
}
function someFunction(id) {
return valueMap[id].Value;
}
答案 4 :(得分:1)
这没有任何意义:
someVariable = document.getElementById(SomeID).id
您正在获取ID为SomeID的元素的ID ...为什么不使用SomeID?
如果你想要id为SomeID的对象的value属性,只需执行:
document.getElementById(SomeID).value