【发布时间】:2014-01-28 14:27:13
【问题描述】:
我正在尝试向现有元素添加自定义属性,但我发现这是不可能的。
我的元素有一个属性映射,但没有属性映射。
我试着做这样的事情:
el.someProperty = 'Some value';
但是这一行产生了一个错误,el 没有 get$someProperty。
我想做一些类似于 jQuery 的东西,你可以直接使用
el.prop('propName', 'value');
谢谢。
【问题讨论】:
我正在尝试向现有元素添加自定义属性,但我发现这是不可能的。
我的元素有一个属性映射,但没有属性映射。
我试着做这样的事情:
el.someProperty = 'Some value';
但是这一行产生了一个错误,el 没有 get$someProperty。
我想做一些类似于 jQuery 的东西,你可以直接使用
el.prop('propName', 'value');
谢谢。
【问题讨论】:
使用
el.attributes['someProperty'] = 'Some value';
如果这不起作用,请使用
el.dataset['someProperty'] = 'Some value';
这样添加的属性将获得一个data 前缀,并且可能命名为data-some-property(尚未测试)
【讨论】:
dataset 而不是attributes。如果要分配给 Polymer 元素,可以el.someProperty = 'value' 或(el as MyElement).someProperty = 'value'
el.dataset['someProperty'] = 'Some value' 会创建一个名为data-someProperty 的属性。执行$(el).prop('someProperty', 'Some value') 不会创建属性,而是向el 对象添加一个字段,这就是提问者所说的他们正在尝试执行但出错的操作。
el.attributes["foo"] = "blah" 可以工作。