Javascript 对象在循环中运行时未定义,但在顺序执行时未定义
我使用设置所有输入元素,其中数据掩码属性定义为属性掩码值: 鉴于此html:Javascript 对象在循环中运行时未定义,但在顺序执行时未定义,javascript,jquery,maskedinput,Javascript,Jquery,Maskedinput,我使用设置所有输入元素,其中数据掩码属性定义为属性掩码值: 鉴于此html: <input type='text' id="a" data-mask='999?999' /> <input type='text' id="b" data-mask='999' /> 第二次迭代抛出一个错误:“UncaughtTypeError:undefined不是一个函数”,在这一行上说“split”没有定义 firstNonMaskPos = null, $.each(mask.sp
<input type='text' id="a" data-mask='999?999' />
<input type='text' id="b" data-mask='999' />
第二次迭代抛出一个错误:“UncaughtTypeError:undefined不是一个函数”,在这一行上说“split”没有定义
firstNonMaskPos = null, $.each(mask.split(""), function(i, c) {
然而,这段代码工作得很好,掩码设置没有问题
$('#a').mask('999?999');
$('#b').mask('999');
有人能解释一下这种奇怪的行为吗
使用
.attr('data-mask')
更改.data('mask')
。因为某种原因,现在对我来说很好。。。可能与jQuery版本有关?第二个版本由data()键入为number
因为split()是一个字符串方法,所以它会抛出错误
简单修复:
var maskValue = "" + $(this).data('mask');
或
var maskValue = "" + $(this).data('mask');
var maskValue = $(this).data('mask').toString();