使用某个div ID选择变量

时间:2014-05-13 09:02:58

标签: javascript jquery

我有一些jQuery在点击时获取页面上元素的ID。我想使用该ID来选择在我的JS中使用哪个变量。

例如:

我点击ID为' a'的元素。 我有一个名为' a'的变量,我想将此变量用于DOM,因为用户点击了' a'元件。

5 个答案:

答案 0 :(得分:3)

假设您的变量在全局范围内:

var a = "foobar",
    b = "barfoo";

然后这应该有效:

$('#a, #b').on('click', function(){
    console.log(window[this.id]); // "foobar" or "barfoo" when clicking #a or #b
});

您可以通过window对象访问全局范围内的变量。

但是,似乎id的元素被保存为寡妇对象的属性,因此包含所有变量的对象会更好:

var props = {a: 1, b: 2};

然后:

console.log(props[this.id]);

<强> Fiddle example

答案 1 :(得分:1)

不要保留很多变量,而是保留一个哈希值 像这样

var hash = {}

现在,如果用户点击id为id ='a'的div 检查

hash['a']

答案 2 :(得分:0)

你必须做这样的事情

     $('.someclass').click(function(){
           var a = $(this).attr('id');
           // Say you want to show some div with id say 'xyz_check1';
           $('#xyz_'+a).show();
     });

或者使用&#39; this.id&#39;

班级&#39; .someclass&#39;应该是你想要使用的所有元素的共同点。

     <div class='someclass' id = "check1"></div>
     <div class='someclass' id = "check12"></div>

答案 3 :(得分:0)

见Cerbrus&#39;通过window对象访问全局变量的答案,以便更好地实现此目的。我不知道你可以通过这种方式访问​​全局变量 - 你每天都学到新东西!

我的原始答案如下:

// Replace the first line with selectors for each element you want to monitor the click event
$('#a, #b, #c').on('click', function() {
    switch ( this.id ) {
        case 'a':
            // Do something with 'a' variable
            break;
        case 'b':
            // Do something with 'b' variable
            break;

        // etc...

        case default:
            // Do something by default (if required)
            break;
    }
});

我更喜欢.on('click', function(){ ... });.click(function(){ ... });,因为它允许支持可能已经动态添加到DOM编辑后的页面的任何元素。

答案 4 :(得分:-1)

让我们说,

$("div").click(function() {
    var divId = this.id ; // this will return you the ID of the div
    // divId will contain the variable you want to use
})