我正在尝试访问Haxe浏览器中元素的'data- *'属性。
var element = document.getElementById('#someId');
var dataLabel = 'label'; //'data-label'
element.dataset[dataLabel] = 5;
该代码(在纯JavaScript中工作)在HaxeDevelop中生成两个编译错误。
如何在Haxe中访问元素数据集?有没有一种已知的正确方法呢?
我最终使用Element#getAttribute和Element#setAttribute方法来完成相同的功能。
var element = document.getElementById('#someId')
var dataLabel = 'label'; //'data-label'
element.setAttribute('data-' + dataLabel, 5);
我认为这是阵列访问运算符在Haxe中的工作方式的缺点。
只有abstract
类型可以定义数组访问,如the manual states here。
Haxe的DOMStringMap只是一个外部类,所以它不能使用String
作为键而不是Int
的数组访问。
现在,有办法解决这个问题。 untyped
关键字seen here是您的初始示例可以工作的一种方式。但是不建议使用untyped
,这对于脆弱的代码来说是一个滑坡,你应该尽可能避免。