Skip to content
On this page

面试题

把当前页面中所有 id 叫做 box1 的都获取到

javascript
var allList = document.getElementsByTagName(*);
var result = []
for(var i=0;i<allList.length;i++){
	var item = allList[i];
  item.id === 'box1'?result.push(item)
}
console.log(result)
1
2
3
4
5
6
7

获取当前元素的上一个哥哥元素节点(兼容所有的浏览器) curEle:current element

javascript
// 首先获取当前元素的上一个哥哥节点,判断当前获取的节点是否为元素节点(nodeType===1)
// 如果不是基于当前获取的节点,找他的上一个哥哥节点..(找几次不知道)一直到找到的节点是元素节点为止
// 如果在查找过程中,发现没有上一个哥哥节点,找到头了,则不再继续查找

function prev(curEle){
	var p = curEle.previousSibling; // 属性返回同一树层级中指定节点的前一个节点。
  while(p&&p.nodeType!==1){ //p:p!=null
    p = p.previousSibling;
  }
	return p;
}

// 扩展
// next: 获取下一个弟弟元素节点
// prevAll:获取所有的哥哥元素节点
// nextAll:获取所有的弟弟元素节点
// siblings:获取所有的兄弟元素节点
// index:获取当前元素的兄弟中排名索引
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
沪ICP备20006251号-1