您的位置:首页 > Web前端 > CSS

阿里测试——生成一个CSS选择器

2018-03-12 10:03 288 查看
题目:





我的解法:

<!DOCTYPE html>
<html lang="en">
<head
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="page">
<div class="content main">
<div class="refer">
<ul>
<li>click1</li>
<li>click2</li>
<li>click3</li>
</ul>
</div>
</div>
</div>
</body>
<script>

var genCssSelector=function(){
//you code here
var ele=arguments[0];
var parentEle=ele.parentNode;
var strGenCssSelector=ele.tagName.toLowerCase();
while(parentEle.nodeName.toLowerCase()!=='#document'){
if(parentEle.id!==''){
strGenCssSelector='#'+parentEle.id+' '+strGenCssSelector;
parentEle=parentEle.parentNode;
continue;
}else if(parentEle.className!=''){
strGenCssSelector=' '+strGenCssSelector;
var classList=parentEle.classList||parentEle.className.split(' ');
for(var i=0;i<classList.length;i++){
strGenCssSelector='.'+classList[i]+strGenCssSelector;
}
parentEle=parentEle.parentNode;
continue;
}else{
strGenCssSelector=parentEle.nodeName.toLowerCase()+' '+strGenCssSelector;
parentEle=parentEle.parentNode;
continue;
}

}
return strGenCssSelector;
}

document.addEventListener('click',function(e){
//点击li时,返回html body #page .content.main .refer ul li
alert(genCssSelector(e.target));
})
</script>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  阿里 测试 笔试题 DOM js
相关文章推荐