如何检查两个DOM相等?

时间:2015-03-11 03:41:08

标签: javascript jquery forms dom

我有自定义表单用于制作完美的用户体验,有一个带按钮的字段加上一些细节信息,这个字段有验证(避免字段的相同值),如果相等或不相同,我需要检查DOM。我需要的平等是相同的DOM,而不是代码。

HTML:

<form id="form">
    <select> ... </select><span class="btn"> + </span>
</form>

使用Javascript:

$("#form select").on('change', changeForm );

function changeForm() {
    var check = $(this);
    $("#form select").each(function(){ // In first index is exactly equal of variable check
        if (check == $(this)) { ... } // false
        if (check === $(this)) { ... } // false
        if (check.isEqualNode($(this)) { ... } // Uncaught TypeError: undefined is not a function
        if (check.isSameNode($(this)) { ... } // Uncaught TypeError: undefined is not a function
    }
}

代码是否返回true?或者我的代码不是好方法吗?

2 个答案:

答案 0 :(得分:1)

您可以使用.is()

if (check.is(this)) { ... } 

答案 1 :(得分:0)

jQuery构造函数返回一个新的jQuery对象,并且不认为2个不同的对象是相等的。

您可以获取包装的DOM元素并进行比较:

if ( check.get(0) === this )