我使用以下jQuery代码来计算具有与其title属性相同的值的文本字段的数量。
$(".textfield").val( $(".textfield").attr('title') ).size();
问题:如何计算不的值等于其title属性的文本字段数?
答案 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;