Jquery 获取当前选择器的值

Jquery 获取当前选择器的值,jquery,Jquery,我使用以下选择器在jQuery中选择零个或多个元素: $("input[type=tel]") 我想更改所选特定DOM元素的值,因此我尝试使用: $("input[type=tel]").val($(this).val().replace(/D/, "")); 但是它去掉了所有的文本,而不仅仅是非数字,这使得我假设$(this)是指调用代码的元素(在我的例子中是调用submit的表单) 更新 我不想使用注释中建议的$.each()方法,我可以通过使用内联函数找到解决方案,如下所示: $('i

我使用以下选择器在jQuery中选择零个或多个元素:

$("input[type=tel]")
我想更改所选特定DOM元素的值,因此我尝试使用:

$("input[type=tel]").val($(this).val().replace(/D/, ""));
但是它去掉了所有的文本,而不仅仅是非数字,这使得我假设
$(this)
是指调用代码的元素(在我的例子中是调用submit的表单)

更新

我不想使用注释中建议的$.each()方法,我可以通过使用内联函数找到解决方案,如下所示:

$('input[type="tel"]').val(function() {return $(this).val().replace(/\D/g, "");});

使用函数参数。它在每个选定元素上被调用,当前值作为其参数(因此您不需要调用
$(this).val()
),返回值用作值

$("input[type=tel]").val(function(oldval) {
    return oldval.replace(/\D/g, '');
});

您可能正在寻找:我不希望在$.each()中实现它,但如果必要的话,我会。只是好奇,但为什么您不使用
this.value.replace(…)
,而不是调用
$(this.val()
?不要将解决方案放在问题中,发布您自己的答案。此解决方案与OP的编辑不同<代码>'D'应该是正则表达式
/\D/
,以与问题保持一致。(
\D
是非数字字符的正则表达式表示法)。我现在知道,它不会影响使用闭包的真正解决方案,但如果将闭包改为字面上的“D”,它会让人感觉“不舒服”。我没有注意到他在编辑中将
/D/
改为
/\D/g
。谢谢你的回复,但你到底为什么一直编辑我的帖子?我编辑了这篇文章,因为你把答案放在了问题里,这是不合适的。当我注意到你在那里也做了实质性的改变时,我把它拆开了。