jQuery选择器比较它们之间的元素属性(和/或属性)

事情从我之前的问题开始:使用jQuery是否可以比较选择器中的两个属性? 我的意思是:

$('element[atribute1!=attribute2]') 

或者,在一个实际例子中:

 $('input[name!=id]') 

在我的情况下,我需要它来获取用于编辑内容的html表单中没有更改的输入字段数,我试图让这段代码工作:

 if($('input[DefaultValue!=input.value]').lenght==0){...} 

怎么样? 它应该返回已更改字段的数量(如果我得到0,我将停止表单提交,显示警报消息并返回而不更新)

谢谢您帮忙。

不。如果你查看jQuery的文档,你会发现没有这样的选择器。

defaultValue也是属性,而不是属性。

你可以这样做:

 var changed = $('input').filter(function() { return this.value !== this.defaultValue; }); 

你可以使用jQuery filter()函数,如下所示:

 var different = $('input').filter(function() { return $(this).attr('data-default-value') != $(this).val(); }); 

然后,您可以测试different.length > 0

这是一个完整的工作示例: http : //jsfiddle.net/us47d/