jQuery to选择不包含特定值的元素

时间:2012-01-31 04:09:00

标签: javascript jquery

我使用以下jQuery代码来计算具有与其title属性相同的值的文本字段的数量。

$(".textfield").val( $(".textfield").attr('title') ).size();

问题:如何计算的值等于其title属性的文本字段数?

3 个答案:

答案 0 :(得分:1)

我会使用filter()然后访问返回集的length属性。

var count = $('.textfield').filter(function() {
                return $(this).val() != $(this).attr('title');
            }).length;

您也可能将filter()的正文视为return this.value != this.title

答案 1 :(得分:1)

首先,您发布的代码并不是您所说的。这样:

$(".textfield").val( $(".textfield").attr('title') ).size();

所有元素的值与“.textfield”设置为第一个“.textfield”元素的title属性的标题,然后返回一个所有这些。

您需要将.val()方法的返回值(没有参数返回当前值)与.attr('title')方法的返回值进行比较。您可以使用.filter()执行此操作,然后检查生成的jQuery对象的.length

$('.textfield').filter(function() {
    var $this = $(this);
    return $this.val() == $this.attr('title');
}).length;

然后计算那些值不相等的数字,除了!=而不是==之外,只做相同的事情。所以:

$('.textfield').filter(function() {
    var $this = $(this);
    return $this.val() != $this.attr('title');
}).length;

(请注意,.length将为您提供与.size()相同的计数,但不会产生函数调用的开销。)

答案 2 :(得分:0)

  • 使用filter功能。
  • 使用选择器的length属性

var length = $('.textfield').filter(function() {
                return this.value != this.title;
             }).length;