我使用以下选择器在jQuery中选择零个或多个元素:
$("input[type=tel]")
我想更改正在选择的特定DOM元素的值,因此我尝试使用:
$("input[type=tel]").val($(this).val().replace(/D/, ""));
但它删除了所有文本而不是非数字,这使得我假设$(this)
指的是调用代码的元素(在我的例子中是一个调用onSubmit的表单)。
更新
我不想使用评论中建议的$ .each()方法,我可以通过使用内联函数找到解决方案,如下所示:
$('input[type="tel"]').val(function() {return $(this).val().replace(/\D/g, "");});
答案 0 :(得分:2)
使用函数参数。它会在每个选定的元素上调用,并以当前值作为参数(因此您不需要调用$(this).val()
),并将返回的值用作值。
$("input[type=tel]").val(function(oldval) {
return oldval.replace(/\D/g, '');
});