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

时间:2018-03-07 12:10:29

标签: javascript html

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

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

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

编辑:检查的原因是autoNumeric可能先前已在其他地方初始化,在具有不同autoNumericSettings的antoher脚本中,此脚本需要遵守先前设置的设置。

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

不要在if中声明变量,在外面执行,然后再检查。

var anObject = null;

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

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

答案 2 :(得分:1)

您确实可以使用AutoNumeric.getAutoNumericElement(domElement)作为Aliaksandr提到检查是否返回了一个元素,但官方检查DOM元素是否已由AutoNumeric管理的方式是:

AutoNumeric.isManagedByAutoNumeric(domElementOrSelector);

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

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