首页 > 解决方案 > javascript for循环将dom元素文本与数组进行比较

问题描述

我将 DOM 元素的 innerHTML 中的内容与静态文本数组中的内容进行比较。元素中的内容始终与文本数组中的条目匹配。

<p id="main1">b</p>

var textArr = ["<p>a</p>","<p>b</p>","<p>c</p>"];
if (main1.innerHTML == textArr[0]) {
            return 0;
        } else if (main1.innerHTML == textArr[1]) {
            return 1;
        } else if (main1.innerHTML == textArr[2]) {
            return 2;
        } else if (main1.innerHTML == textArr[3]) {
            return 3;
        } else {
            return 0;
}
//returns 1

我很快就会向 textArr 添加条目,并意识到对于这种情况,for 循环通常是更好的做法。但是,我的条件语句永远不会被循环击中。

var index;
for (index = 0; index < textArr.length; ++index) {
    if (main1.innerHtml == textArr[index]) {
        return index;
    } 
}
//does nothing

如何检查元素中的内容与数组中的内容?

标签: javascripthtmlarrays

解决方案


Array.prototype.indexOf()像这样使用:

return textArr.indexOf(main1.textContent);

这将从数组和main1元素中返回匹配文本的索引。


推荐阅读