javascript - 如何统计选中元素的个数?

标签 javascript jquery html

我有很多使用相同类名的元素。现在我需要计算所选项目的数量。

例如像这样:(但是这个例子不能正常工作)

$("#btn").click(function(){
  if($(".necessarily").val() == ''){
    $(".necessarily").css('border','1px solid red');
  }
     // also I want the number of input.necessarily which are empty
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <form name="frm" action="#">
        <input name="first-name" class="necessarily" type="text" /><br><br>
        <input name="last-name" class="necessarily" type="text" /><br><br>
        <input name="email" class="necessarily" type="email" /><br><br>
        <input name="password" class="necessarily" type="password" /><br><br>
        <input name="address" class="anything" type="text" /><br><br>
        <input name="btn" id="btn"  type="submit" value="Register" />
    </form>

现在我想要那些为空的输入的数量...,我该如何计算?

最佳答案

.val() 方法返回集合中第一个元素的 .value 属性。您可以使用 .filter() 方法过滤空输入并读取过滤集合的 .length 属性:

var $empty = $(".necessarily").filter(function() {
   // you can use the `$.trim` method for trimming whitespaces
   // return $.trim(this.value).length === 0; 
   return this.value.length === 0;
});

if ( $empty.length > 0 ) {

}

如果你想给空白字段添加边框,你可以声明一个 CSS 类并使用 .removeClass.addClass 方法:

CSS:

.red_border {
   border: 1px solid red;
}

JavaScript:

var $empty = $(".necessarily").removeClass('red_border').filter(function() {
   return this.value.length === 0;
}).addClass('red_border');

关于javascript - 如何统计选中元素的个数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34239734/

相关文章:

javascript - object.create 不使用我的新值

javascript - 更改 1 个状态属性会触发重新渲染整个元素和所有子元素

jquery - 如何使图像看起来像闪烁的动画

html - 使用 bg-color 设置 p 元素的宽度以自动调整为文本长度?

jquery - 如何使用 jQuery 实现悬停效果

javascript - 菜单切换图标错误

javascript - 如何在 JavaScript 中从数组中提取多个元素?

javascript - JQuery 自动完成搜索到字母

Jquery菜单多实例

javascript - 如何在动态包含 div 后加载 js .click