function findIdList(data2, id, children = 'children', level = 0) {
var arrRes = []
let obj = {
id: 0,
[children]: data2
}
let rev = (data, id, level) => {
if (!data || !data[children] || !data[children].length) {
return
}
for (var i = 0 i < data[children].length i++) {
let item = data[children][i]
if (item.id == id) {
// 将匹配到的结果保存到数组
arrRes.unshift({ level, activeId: item.id })
// 递归它的父级
rev(obj, data.id, 0)
break
} else if (item[children] && item[children].length > 0) {
//如果有子集,则把子集作为参数重新执行本方法
rev(item, id, level + 1)
}
}
}
rev(obj, id, level)
return arrRes
}
let list = [
{id: 1, children: [
{id: 11, children: [{id: 12}]}
]},
{id: 2, children: [{id:21, children: [{id: 31}]}]}
]
let b = findIdList(list, 21)
console.log(b) // [ { level: 0, activeId: 2 }, { level: 1, activeId: 21 } ]
js找一个子元素的父元素:
<!DOCTYPE html><html><head>
<meta charset="utf-8">
</title> <script type="text/javascript"> function deleteElement(Obj)
{ Obj.parentNode.parentNode.removeChild(Obj.parentNode) } </script></head>
<body> <ul class="list2" ><li ><img alt="" src="1.jpg" /><div>mingzi1</div>
<a onclick="deleteElement(this)">删除</a></li><li ><img alt="" src="2.jpg" />
<div>mingzi2</div><a onclick="deleteElement(this)">删除</a></li><li >
<img alt="" src="3.jpg" /><div>mingzi3</div><a onclick="deleteElement(this)">删除</a>
</li></ul></body></html>
拓展资料删除一个父元素下面的所有子元素:
document.getElementById("ok").innerHTML = ""
删除其中的一个:
document.getElementById("ok").remove(document.getElementById("ok").children(i))
//删除id为"ok"下的第i-1个子元素
jquery中parent()可以获取父级元素,所以获得某元素父级的父级可以使用
$(selector).parent().parent()示例如下
创建Html代码及css样式
<div class="class1">class1
<div class="class2">
class2
<div class="class3">
class3
</div>
</div>
</div> div{padding:10px 20pxborder:4px solid #ebcbbe}
div.class1{width:200pxheight:120px}
编写jquery代码
$(function(){$("div.class3").click(function() {
obj = $(this).parent().parent()
alert(obj.prop('class'))
})
})
查看效果