将字符串转换为 HTMLElement
Converting String to HTMLElement
我希望通过在 HTML 中定义仪表组件来绘制 canvas gauge,但在绘制页面后激活绘制机制。
user documentation 说这可以通过执行以下操作来实现
<script>window.GAUGES_NO_AUTO_INIT = true;</script>
<script src="../gauge.min.js"></script>
并定义 canvas 仪表,然后使用 BaseGauge.fromElement(canvasGaugeElement);
绘制它
我定义了一个 canvas 元素
<canvas class='canv' id='canv0' data-width=200 data-height=80 value=75 data-type='linear-gauge'></canvas>
我可以成功绘制仪表
BaseGauge.fromElement(canv0);
如果我想同时画很多canvas个仪表,我可以
BaseGauge.fromElement(canv0);
BaseGauge.fromElement(canv1);
BaseGauge.fromElement(canv2);
不过我想使用下面的代码:
$('.canv').each(function(i, obj) {BaseGauge.fromElement($(this).attr('id'));});
但是这失败了,因为 BaseGauge.fromElement 需要一个 HTMLElement 而不是 String
知道如何解决这个问题吗?
您可以进行如下操作:
document.getElementsByClassName('canv').forEach((element) => BaseGauge.fromElement(element));
您正在传递在每个循环中获得的对象的 id 属性...因为 BaseGauge
需要一个对象,您只需传递对象本身:
$('.canv').each(function(i, obj) {BaseGauge.fromElement(this);});
并且应该有效。
我希望通过在 HTML 中定义仪表组件来绘制 canvas gauge,但在绘制页面后激活绘制机制。
user documentation 说这可以通过执行以下操作来实现
<script>window.GAUGES_NO_AUTO_INIT = true;</script>
<script src="../gauge.min.js"></script>
并定义 canvas 仪表,然后使用 BaseGauge.fromElement(canvasGaugeElement);
我定义了一个 canvas 元素
<canvas class='canv' id='canv0' data-width=200 data-height=80 value=75 data-type='linear-gauge'></canvas>
我可以成功绘制仪表
BaseGauge.fromElement(canv0);
如果我想同时画很多canvas个仪表,我可以
BaseGauge.fromElement(canv0);
BaseGauge.fromElement(canv1);
BaseGauge.fromElement(canv2);
不过我想使用下面的代码:
$('.canv').each(function(i, obj) {BaseGauge.fromElement($(this).attr('id'));});
但是这失败了,因为 BaseGauge.fromElement 需要一个 HTMLElement 而不是 String
知道如何解决这个问题吗?
您可以进行如下操作:
document.getElementsByClassName('canv').forEach((element) => BaseGauge.fromElement(element));
您正在传递在每个循环中获得的对象的 id 属性...因为 BaseGauge
需要一个对象,您只需传递对象本身:
$('.canv').each(function(i, obj) {BaseGauge.fromElement(this);});
并且应该有效。