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

时间:2011-12-03 19:35:45

标签: jquery jquery-selectors attributes properties comparison

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

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

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

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

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

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

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

感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

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

同样defaultValue是属性,而不是属性。

你可以这样做:

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

答案 1 :(得分:1)

您可以使用jQuery filter()功能,如下所示:

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

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

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