我不想将ID存储在变量中,我想将它用作访问对象的变量。
例如:
function Location(name, state)
var city = new Location("Baltimore", "Maryland");
<a href="#" id="city" onclick="function(this)">
目的是当函数运行时,它可以使用元素ID打印出“Baltimore”。
目前我尝试的任何内容都会返回undefined
答案 0 :(得分:1)
您可以将ID用作密钥,当您不必弄乱父级范围等时,可以更轻松地使用。
<a href="#" id="city" onclick="fn(this)">city</a>
<a href="#" id="country" onclick="fn(this)">country</a>
然后
var obj = {
city : {name : 'New York'},
country : {name : 'USA'}
}
function fn(elem) {
var value = obj[elem.id].name;
}
答案 1 :(得分:0)
虽然你可以这样做,但你应该使用data
属性。
// assuming that `city` is global variable.
var city = new Object();
function(eventTarget) {
var id = eventTarget.getAttribute('data-id');// or `eventTarget.id` to get id, if you prefer not to use `data` attribute.
console.log(window[id]);
}
<a href="#" data-id="city" onClick="foo(this)">