首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何比较两个HTML元素

如何比较两个HTML元素
EN

Stack Overflow用户
提问于 2012-05-21 13:10:29
回答 3查看 63.2K关注 0票数 31

我们如何比较两个HTML元素,不管它们是否相同?

我试过这玩意儿,但没成功

代码语言:javascript
复制
<div class="a"> Hi this is sachin tendulkar </div>
<div class="a"> Hi this is sachin tendulkar </div>

然后单击按钮,我调用了一个check()函数

代码语言:javascript
复制
var divs = $(".a");
alert(divs.length);    // Shows 2 here which is correct
if (divs.get(0) == divs.get(1)) alert("Same");

但这是行不通的。在两个div中,一切都是一样的。除此之外,我们如何比较两个HTML元素是否完全相同。包括它们的innerHTML、className、Id和它们的属性。

这可行吗?

实际上,我有两个HTML文档,我想从这两个文档中删除相同的内容,以便两个元素可以具有相同的id。

PS:在克劳德的宝贵评论之后更新。如果我们将两个元素作为字符串进行比较,我们将不会得到匹配,因为它们的属性顺序可能不同,因此唯一的选择是迭代每个子属性并进行匹配。我仍然需要弄清楚完全有效的实现策略。

EN

回答 3

Stack Overflow用户

发布于 2013-10-13 14:37:24

您可以使用:

代码语言:javascript
复制
element1.isEqualNode(element2);

在您的特定示例中:

代码语言:javascript
复制
var divs = $(".a");
if ( divs.get(0).isEqualNode(divs.get(1)) ) alert("Same");

DOM Level 3 Core Spec包含了所有的细节。本质上,如果两个节点具有匹配的属性、后代和后代的属性,则返回true。

还有一个类似的.isSameNode(),它仅在两个元素是同一个节点时才返回true。在您的示例中,这些节点不是相同的节点,但它们是相等的节点。

票数 54
EN

Stack Overflow用户

发布于 2012-05-21 13:21:15

为什么不用简单的方法呢?

代码语言:javascript
复制
<div id="div1"><div class="a"> Hi this is sachin tendulkar </div></div>
<div id="div2"><div class="a"> Hi this is sachin tendulkar </div></div>

if($('#div1').html() == $('#div2').html())
    alert('div1 & div2 are the same');        
else
    alert('div1 & div2 are different');

http://jsfiddle.net/5Zwy8/1/

票数 1
EN

Stack Overflow用户

发布于 2012-05-21 13:22:07

这是如何编码的?

代码语言:javascript
复制
var d1 = document.createElement("div");
d1.appendChild(divs.get(0));
var d2 = document.createElement("div");
d2.appendChild(divs.get(1));
if (d1.innerHTML == d2.innerHTML) ?
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10679762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档