尝试使用等效的输入名称属性值来定位属性名称

时间:2012-12-03 19:33:44

标签: javascript jquery raphael

我正在使用由Raphael构建的svg,并使用表单使其中的部分内容可编辑。

我的路径变量类似于以下内容:

uk.isle_of_man
uk.republic_of_ireland
uk.england

和输入字段如:

<input id="england-form" type="text" name="england">

我正在使用以下代码根据选择的输入字段更新填充。它对于id工作正常,但我正在使用var b = $(this).attr("name");做一些愚蠢的事情,并尝试使用它来定位变量属性。这是代码:

$('#form').find('input').focus(function(){
var a = $(this).attr("id");
var b = $(this).attr("name");

$('#'+a).live('change', (function() {
    var value = $(this).val();
    uk.(b).color = (value);
}));

我的意图是uk.(b).color相当于uk.england.color。知道我做错了什么吗?如果我使用uk.england格式,一切正常。

1 个答案:

答案 0 :(得分:1)

当您使用.时,它会在b内搜索名为uk的媒体资源。
要搜索变量值,您必须使用[]

所以,如果我有以下物品。

var 'uk' = {
    'england': {
        color: 'green'
    },
    'b': {
        color: 'wrong'
    }
};

当我使用uk.(b).color时。我得到'wrong''green'使用uk[b].color