JS 怎么将一个标签的ID弄成数组

JavaScript012

JS 怎么将一个标签的ID弄成数组,第1张

首先需要看下 这些元素在哪些元素的范围内 比如在一个大Div的包围中  

可以这样取

//取出元素 

var aLi=document.getElementById('div').getElementsByTagName('li')

var aId=[]//建立一个空数组用于存放ID

//然后遍历整个li元素 取出ID

for(var i=0i<aLi.lengthi++){

aId.push(aLi[i]['id'])

}

//到这一步 这时候的aId数组就存有所有元素的ID了

更优质的教程来自  绿叶学习网

function myFilter(arr1,arr2) {

    return  arr1.filter((ele) => 

        arr2.filter((x) => x.id === ele.id).length > 0

    )

}

在 chrome 浏览器下测试可行。

答案里为了简洁,使用了箭头函数。主要思路就是利用 Array 的 filter 函数。

该函数接受一个回掉函数作为参数,就是如何过滤想要的内容,满足条件的返回为true。

它并不要求b里的id都在a里,只要是共有的id都会选中。

如果是b里的id 都在a里的话,可以尝试这个方法。

function myFilter2(arr1,arr2) {

    var ret = []

    arr2.forEach(

        ele => {

            var findEle = arr1.find(x => x.id === ele.id )

            // 如果在arr1中找到,添加到arr1中

            findEle ? ret.push(findEle) : ''

        }

    )

    return ret

}

这个思路是把b中的每一个id都在a中找一下。

var list = [

{ id: "1", name: "test1", rName: "the1" },

{ id: "1", name: "test1", rName: "the2" },

{ id: "1", name: "test1", rName: "the3" },

{ id: "2", name: "test2", rName: "the1" },

{ id: "2", name: "test2", rName: "the2" },

{ id: "3", name: "test3", rName: "the1" }

]

var list2 = []

for (var i in list) {

var list3 = []

for (var j in list) {

if (list[i].id == list[j].id&&list[j].key!=1) {

list[j].key=1

list3.push(list[j])

}

}

if(list3.length>0){

list2.push(list3)

}

}

console.log(list2)