我有一个程序在密钥启动后生成计数。 JQuery代码:
$('.today').keyup(function() {
var Presents = $('input[value="/"]:visible');
$("#counter").html( "Present: " + Presents.length );
});
HTML:
<input type="text" id="1" name="1" class="today" value="/">
<input type="text" id="2" name="2" class="today" value="/">
<input type="text" id="3" name="3" class="today" value="/">
<p id="counter"></p>
第一次按键后,计数器标签将显示3。当我更改文本框中的值时,计数器框中的值不会更改。 例如。当我有机会将文本框3的值改为x时,
标签现在应该包含数字2.目前这不会改变。
答案 0 :(得分:6)
您正在使用属性选择器,但是当您更改输入值时,它不会更改属性;只是财产。您可以使用filter()
获取所需内容:
$('.today').keyup(function() {
var Presents = $('input:visible').filter(function(){
return this.value == "/";
});
$("#counter").html( "Present: " + Presents.length );
});
如果您需要更新属性本身,只需将以下内容添加到事件处理程序的顶部即可:
$(this).attr('value',this.value);
但这对我来说似乎很混乱。另外,我相信filter()
会比属性选择器更快。