Haxe DOMStringMap值不可访问

时间:2018-09-03 02:52:04

标签: javascript dom browser haxe

我正在尝试在Haxe的浏览器中访问元素上的'data- *'属性。

var element = document.getElementById('#someId');
var dataLabel = 'label'; //'data-label'
element.dataset[dataLabel] = 5;

该代码(在普通javascript中有效)在HaxeDevelop中产生两个编译错误。

  1. “字符串应为整数”

  2. “对于函数参数'data'”

如何在Haxe中访问元素数据集?有已知的正确方法吗?

2 个答案:

答案 0 :(得分:0)

我最终使用Element#getAttributeElement#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,但对于脆弱的代码来说,这是一个滑溜溜的脚步,应尽可能避免。