js数组成员为对象时,如何找字符串在数组中的位置?

新手上路,请多包涵
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
        //因为是对象数组所以查询失败
        function test1() {
            var divs = document.querySelectorAll("div");
            arr = Array.prototype.slice.call(divs);

            var locationArr = [];
            for (var i = 0; i < arr.length; i++) {
                if (arr[i].indexOf('li') >= 0) {
                    locationArr.push(i);
                }
            }
            console.log(arr);
            console.log(locationArr); //字符串在数组中的位置。     
            
        }
        
        //下面是查找字符串在数组中的位置因为数组文本是内容所以查询成功
        function test2() {
            var arr = ['zhao', 'qian', 'sun', 'li', 'zhou'];
            var locationArr = [];
            for (var i = 0; i < arr.length; i++) {
                if (arr[i].indexOf('li') >= 0) {
                    locationArr.push(i);
                }
            }
            console.log(arr);
            console.log(locationArr); //字符串在数组中的位置。         
        }
        
        
    
    </script>
</head>
<body>

<button onclick="test1()">查找对象数组字符串</button>
<button onclick="test2()">查找文本数组字符串</button>

<div id="rongqi">
    <div>zhao</div>
    <div>qian</div>
    <div>sun</div>
    <div>li</div>
    <div>zhou</div>    
</div>
</body>
</html>
阅读 4.5k
3 个回答

tagName localName nodeName
无非就是比较这个东西嘛。。。

其实可以把你的详细需求重新说一下,看代码的话基本没有这样去使用的。你应该纠结的是编码方向的问题,感觉你这个思路不正确

可以用 JavaScript Array对象方法,

Array.indexOf() 搜索数组中的元素,并返回它所在的位置,不存在则返回 -1;
Array.includes() 判断一个数组是否包含一个指定的值,返回 true,否则返回false。
Array.find() 返回符合传入测试(函数)条件的数组元素,否则返回 undefined;
Array.fingIndex() 返回符合传入测试(函数)条件的数组元素索引,否则返回 -1;
Array.some() 检测数组元素中是否有元素符合指定条件(函数)。返回 true,否则返回 false;

更详细的可以 看看这个

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题