首页 > 解决方案 > 将字符串转换为 HTMLElement

问题描述

我希望通过在 HTML 中定义仪表组件来绘制画布仪表,但在绘制页面后激活绘图机制。

用户文档说这可以通过执行以下操作来实现

<script>window.GAUGES_NO_AUTO_INIT = true;</script>
<script src="../gauge.min.js"></script>

并定义画布仪表,然后使用BaseGauge.fromElement(canvasGaugeElement);

我定义了一个画布元素

<canvas class='canv' id='canv0' data-width=200 data-height=80 value=75 data-type='linear-gauge'></canvas>

我可以成功地绘制仪表

BaseGauge.fromElement(canv0);

如果我想同时绘制许多画布仪表,我可以这样做

BaseGauge.fromElement(canv0);
BaseGauge.fromElement(canv1);
BaseGauge.fromElement(canv2);

但是我想使用以下代码:

$('.canv').each(function(i, obj) {BaseGauge.fromElement($(this).attr('id'));});

然而,这失败了,因为 BaseGauge.fromElement 期待一个 HTMLElement 而不是一个字符串

知道如何解决这个问题吗?

标签: javascriptjquerycanvasgauge

解决方案


您正在传递在每个循环中获得的对象的 id 属性......因为BaseGauge需要一个对象,您只需传递对象本身:

$('.canv').each(function(i, obj) {BaseGauge.fromElement(this);});

并且应该工作。


推荐阅读