1

私は 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).colorto が と同等であることuk.england.colorです。私が間違っていることは何か分かりますか?フォーマットを使用すると、すべて正常に動作しuk.englandます。

4

1 に答える 1

1

使用すると、 inside.という名前のプロパティが検索されます。 変数値を検索するには、 を使用する必要があります。buk
[]

したがって、次のオブジェクトがあるとします。

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

私が使用するときuk.(b).color。私は得る'wrong'。使用
する。'green'uk[b].color

于 2012-12-03T19:37:02.567 に答える