我正在尝试在Haxe的浏览器中访问元素上的'data- *'属性。
var element = document.getElementById('#someId');
var dataLabel = 'label'; //'data-label'
element.dataset[dataLabel] = 5;
该代码(在普通javascript中有效)在HaxeDevelop中产生两个编译错误。
“字符串应为整数”
“对于函数参数'data'”
如何在Haxe中访问元素数据集?有已知的正确方法吗?
答案 0 :(得分:0)
我最终使用Element#getAttribute和Element#setAttribute方法来完成相同的功能。
var element = document.getElementById('#someId')
var dataLabel = 'label'; //'data-label'
element.setAttribute('data-' + dataLabel, 5);
答案 1 :(得分:0)
我认为这是数组访问运算符在Haxe中工作的不利方面。
只有abstract
类型可以将数组访问定义为the manual states here。
Haxe的DOMStringMap只是一个extern类,因此它不能具有使用String
作为键而不是Int
作为键的数组访问。
现在,有一些解决方法。 untyped
关键字seen here是最初示例的一种工作方式。尽管不推荐使用untyped
,但对于脆弱的代码来说,这是一个滑溜溜的脚步,应尽可能避免。