2011年3月29日火曜日

e4xでハイフンつきの属性をリストアップ

e4xでハイフンつきの属性にアクセスする方法です。

普通の属性は@を使えば簡単なコードでアクセスできます。 svgという変数にxmlオブジェクトが代入されてるとして、

var elems = svg..@id;

とすると属性idのリストが得られます。 しかし、「clip-path」のように属性名にハイフンが入っている場合、ハイフンがマイナス演算子扱いされるのでそのままコードに書けません。 e4xでこのような属性にアクセスする場合は次のように書きます。

var elems = svg..@['clip-path'];

これは、シンタックスシュガーなのかな? e4xはコードを書くときに便利なように色々なシンタックスシュガーがあるようですが、それが原因でごちゃごちゃになってる部分もありますよね。