如何检查元素是否已初始化 autoNumeric

How to check if element has autoNumeric initialized

如何检查 HTML 元素是否已经 autoNumeric 初始化,所以我不会再次初始化它?

初始化两次会导致所有输入数字出现两次。

if (// autonumeric not yet initialized) {
    var anObject = new AutoNumeric(document.querySelector(inputSel), autoNumericSettings);
}

编辑:检查的原因是 autoNumeric 可能先前在其他地方初始化过,在另一个脚本中具有不同 autoNumericSettings,并且此脚本需要遵守较早的设置。

不要在 if 内部声明变量,在外部声明然后检查。

var anObject = null;

if(anObject !== null) {
   anObject = new AutoNumeric(document.querySelector(inputSel), autoNumericSettings);
}

如果你post你的代码多一点我可以做得更好,我真的不知道你完整代码的结构,但原理是一样的。

可能,您可以使用 getAutoNumericElement(domElement) 检查 HTML 元素是否已经初始化了 autoNumeric

if (AutoNumeric.getAutoNumericElement(domElement) === null) {
    var anObject = new AutoNumeric(document.querySelector(inputSel), autoNumericSettings);
}

您确实可以像 Aliaksandr 提到的那样使用 AutoNumeric.getAutoNumericElement(domElement) 来检查是否返回了元素,但是 官方 方法来检查 DOM 元素是否返回已经由 AutoNumeric 管理的是:

AutoNumeric.isManagedByAutoNumeric(domElementOrSelector);

所以你的代码应该像这样更新:

let anObject;
if (!AutoNumeric.isManagedByAutoNumeric(inputSel)) {
    // Also, no need to querySelector `inputSel` here:
    anObject = new AutoNumeric(inputSel, autoNumericSettings);
}