这个除了遍历意外恐怕没有更有效办法。
不用循环的话就用递归,不过效率还没循环高呢。
另外我写的这个是有问题的js数组是引用类型的,需要一个副本。
真打算用的 再改善改善
var arr = [{name:"aa"},{name:"bb"},{name:"cc"},{name:"dd"},{name:"zhangsan"}]function doFind(name,arr){
if(!arr||arr.length<1){
return null
}
var obj = arr.pop()
if(obj.name==name){
return obj
}
doFind(name,arr)
}
var obj = doFind("zhangsan",arr)
alert(obj?obj.name:obj)
~
思路:先找到所有.red类的对象集合:obj_div然后取含有绿色的那个:div_hg
然后找到这个里面的最后一个孩子(green)
1、找到对象集合 var obj_div = document.getElementsByClassName("red")
2、取出含有绿色的那个div_hg: var div_hg = obj_div[obj_div.length-1]
3、得到最后div里面的最后一个孩子:var green = div_hg.Children[div_hg.Children-1]
具体代码和验证自己做吧,只是大体的思路。
不知道是不是要实现这个,有理解错的地方,可以留言