jQuery,多个id的相同function
我想清除指定的输入,如果值不是数字。 函数适用于一个ID,但我希望它适用于多个ID。 当然,我可以多次写函数,但我不想这样做。
以下代码仅对id为“d”的输入生效。 我不知道如何识别其他ID。 有人可以帮忙吗?
$('#d,d2,d3').keyup(function(){ if($('#d,d2,d3').val() != "") { var value = $('#d,d2,d3').val().replace(/^\s\s*/, '').replace(/\s\s*$/, ''); var intRegex = /^\d+$/; if(intRegex.test(value)) {} else { $(this).val(''); } } });
而不是$('#d,d2,d3')
使用$('#d, #d2, #d3')
而if语句使用$(this).val()
您可以使用带选择器的启动而不是像这样放入多个ID:
$('[id^=d]')
上面的选择器适用于所有以ids开头的元素,例如d1
, d2
, d3
等。
以下是您的代码应该如何(修复其他错误):
$('[id^=d]').keyup(function(){ if(this.value != "") { var value = this.value.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); var intRegex = /^\d+$/; if(intRegex.test(value)) {} else { this.value = ''; } } });
您可以添加类属性
按类名使用以下选择器
$('.A').keyup
$('input[id^=d]').keyup(function() { var val = $.trim( this.value ); // or $.trim( $(this).val() ) if (val != "") { var value = val.replace(/^\s\s*/, '').replace(/\s\s*$/, ''), intRegex = /^\d+$/; if (intRegex.test(value)) { // do something } else { $(this).val(''); } } });
[id^=d]
是选择器的开头,表示id
以d
开头。
阅读jQuery启动选择器
你忘记了#
d2 & d3
。 还有一个。
$('#d,#d2,#d3').keyup(function(){ if($(this).val() != "") { var value = $(this).val().replace(/^\s\s*/, '').replace(/\s\s*$/, ''); var intRegex = /^\d+$/; if(intRegex.test(value)) {} else { $(this).val(''); } } });
你忘了其他两个ID的哈希:
$('#d,#d2,#d3')
另请参阅jQuery Multiple ID选择器