jQuery值属性选择器未返回正确的元素数

PHP*_*389 4 html javascript jquery dom input

我有一个程序,在密钥启动后生成一个计数.JQuery代码:

$('.today').keyup(function() {
    var Presents = $('input[value="/"]:visible');
    $("#counter").html( "Present: " + Presents.length );
});
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

首次按键后,计数器标签将显示3.当我更改文本框中的值时,计数器框中的值不会更改.EG当我有机会将文本框3的值改为x时

标签现在应该包含数字2.目前这不会改变.

Geo*_*rge 6

您正在使用属性选择器,但是当您更改输入值时,它不会更改属性; 只是财产.您可以filter()用来获得所需:

$('.today').keyup(function() {
    var Presents = $('input:visible').filter(function(){
      return this.value == "/";  
    });
    $("#counter").html( "Present: " + Presents.length );
});
Run Code Online (Sandbox Code Playgroud)

的jsfiddle

如果您需要更新属性本身,只需将以下内容添加到事件处理程序的顶部即可:

$(this).attr('value',this.value);
Run Code Online (Sandbox Code Playgroud)

的jsfiddle

但这对我来说似乎很混乱.此外,我相信filter()无论如何都会比属性选择器更快.