如何检查HTML元素是否已初始化autoNumeric,所以我不会再次初始化它?
初始化两次会导致所有输入数字出现两次。
if (// autonumeric not yet initialized) {
var anObject = new AutoNumeric(document.querySelector(inputSel), autoNumericSettings);
}
编辑:检查的原因是autoNumeric可能先前已在其他地方初始化,在具有不同autoNumericSettings
的antoher脚本中,此脚本需要遵守先前设置的设置。
答案 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);
}