javascript - 为什么 'value' 的 Jquery 选择器在动态变化的情况下不起作用

标签 javascript jquery jquery-selectors

我不确定为什么 jquery 选择器 value 不起作用,试图将输入的值更改为 "a"length不是增量,请检查下面的简单示例:

$('body').on('input', '.example', function() {
  $('#result').text($('.example[value="a"]').length);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="example" value="a">
<input type="text" class="example" value="b">
<input type="text" class="example" value="c">

<div id='result'></div>

最佳答案

如果您动态更改值,属性选择器将不会选择它。您可以改用 filter()

Attribute selector will not check the dom node's value property it only targets the element's attribute

$('body').on('input', '.example', function() {
  $('#result').text($('.example').filter(function() {
    return this.value == 'a'
  }).length);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="example" value="a">
<input type="text" class="example" value="b">
<input type="text" class="example" value="c">

<div id='result'></div>


或者您需要在输入事件上手动更新元素属性

$('body').on('input', '.example', function() {
  $(this).attr('value', this.value);
  $('#result').text($('.example[value="a"]').length);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="example" value="a">
<input type="text" class="example" value="b">
<input type="text" class="example" value="c">

<div id='result'></div>

关于javascript - 为什么 'value' 的 Jquery 选择器在动态变化的情况下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34063628/

相关文章:

javascript - 使用异步存储可以存储大量数据吗? [ react native ]

javascript - 如何创建一个在 keyup 上启动的 jQuery 计时器

jquery - 如何使用 jQuery 将文本传递到 AJAX 通过单击编辑链接提交

javascript - 汉堡包图标切换不起作用

jquery - 如何使用jquery选择具有相同名称的连续div中的所有元素

javascript - 使用 javascript(或 jQuery)选择和操作 CSS 伪元素,例如::before 和::after

javascript - 如何在cordova中的sqlite事务中传递参数

javascript - 点击链接后 Jquery 类被删除,但第二次点击仍然可以识别

javascript - 如何从 twitter bootstrap 将事件类设置为导航菜单

jquery - 查找单个 jquery 后代