如何检查两个 DOM 是否相等?
How check two DOM equal?
我有自定义表单来制作完美的用户体验,有一个带按钮的字段加上一些详细信息,这个字段有验证(避免字段的相同值)我需要检查 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
}
}
代码是否 return 正确?或者我的代码不是很好的方法?
你可以使用 .is()
if (check.is(this)) { ... }
jQuery构造函数returns一个新的jQuery对象和2个不同的对象不被认为是相等的。
您可以获得包装的 DOM 元素并进行比较:
if ( check.get(0) === this )
我有自定义表单来制作完美的用户体验,有一个带按钮的字段加上一些详细信息,这个字段有验证(避免字段的相同值)我需要检查 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
}
}
代码是否 return 正确?或者我的代码不是很好的方法?
你可以使用 .is()
if (check.is(this)) { ... }
jQuery构造函数returns一个新的jQuery对象和2个不同的对象不被认为是相等的。
您可以获得包装的 DOM 元素并进行比较:
if ( check.get(0) === this )