首页 > 解决方案 > 根据 DIV 文本在数组中查找索引

问题描述

我有一个 DIV,其中包含文本:

<div id="x">
  divText
</div>

我有一个像这样的“标题行”:

var headerRow = ["wrong","wrongAgain","divText"];

我也有一个这样的数组:

var theArray = [["blah","blah","0"]["notIt","blahblah","1"],["unrelated","dontLook","0"]];

我想根据 div 中的文本在 theArray (2) 中找到索引:

var theDiv = x.innerHTML;
for (i=0; i < headerRow.length; i++){
    if (headerRow[i] == theDiv){        <--never works
    if (headerRow[i] == x.innerHTML) {  <---never works
    if (headerRow[i] == "divText") {     <--works (i = 2)
}

如何根据 div / 变量的 innerHTML 找到索引(上面的前两种情况)?谢谢!

标签: javascripthtmlarraysindexing

解决方案


<div id="x">
    divText
</div>


<script>
    
    var headerRow = ["wrong","wrongAgain","divText"];
    var theDiv = document.getElementById('x').innerHTML;
    console.log(theDiv);
    for (i=0; i < headerRow.length; i++){
        if (headerRow[i] == theDiv.trim()){
            console.log(headerRow.indexOf(headerRow[i]));
            console.log(i);
            
        }
        
    }
        
</script>

由于 div 的 innerHTML 文本中有额外的空格/换行,您的 if 比较不起作用。因此,您需要先修剪字符串,然后再将其与标题行数组的内容进行比较。请注意,您可以使用 indexOf 方法获取匹配元素的索引,也可以只使用 i 的当前值,它也对应于该元素的索引。希望这对你有意义。


推荐阅读