如何比较两个DOM元素

How to compare 2 DOM elements?

本文关键字:两个 DOM 元素 比较 何比较      更新时间:2023-09-26

如果元素为$("[id$=linkbuttonabsd]"),则警告b,否则警告a

JavaScript代码:

$("body").find("a").click(function (e) {
    var herf = $("body").find("a");
    var link = $("[id$=linkbuttonabsd]");
    var isb = false;
    for (var i = 0; i < herf.length; i++) {
        if (herf[i] == link) {
            isb = true;
        }
    }
    if (isb) {
        alert("b");
    } else {
        alert("a");
    }
});

但是我不能通过herf[i] == link实现这一点。应该怎么做呢?

可以使用$.fn.is()

根据选择器、元素或jQuery对象和return true检查当前匹配的元素集,如果这些元素中至少有一个与给定参数匹配。

if(herf.eq(i).is(link)){
    //Condition is ture
}

也可以使用.eq()而不是[]来获取指定索引处的元素

不需要循环遍历对象。代码可以简化为

$("body a").click(function(e) {
    var herf = $("body a");
    var link = $("[id$=linkbuttonabsd]");
    var isb = herf.is(link);
    if (isb) {
        alert("b");
    } else {
        alert("a");
    }    
});

尝试使用$.is来匹配元素。下面是示例:

if ($(herf[i]).is("#linkbuttonabsd")) {
    isb = true;
}