阿里的前端前期小测验

做完就感觉自己就是欠练。。。做题的时候着急。头脑一片白啥也想不起来了。只用了最简单的办法做还出了问题。。比如什么审题啊。又或者连题意我都没读明白就开始做了,题很简单。但是错在我自己。。把这道题粘出来以后做个教训吧。。。

实现一个方法genCssSelector,可以根据一个给定的元素生成一个CSS选择器,通过这个选择器可以快速定位到这个元素(document.querySelector(A))
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div id="page">
<div class="content main">
<div class="refer">
<ul>
<li></li>
<li></li>
...
</ul>
</div>
</div>
</div>
</body>
</html>
根据上述HTML结构,完善如下JavaScript代码中的“your code here”部分,使得click事件中的注释要求符合预期:
var genCssSelector = function(){
// your code here
}

document.addEventListener(‘click‘, function(e){
//点击li时,返回:html body #page .content.main .refer ul li
console.log(genCssSelector(e.target));
})

当时提交的方法我就不粘了。。就是个小白感觉都比我答的好。。粘一个我最后几分钟读明白题才想好的办法代码吧。当然已经来不及了。

var genCssSelector = function(e){
        var obj = document.querySelector(e.tagName);
        var str =[];
        var i=0;
        while(1){
            if(obj.parentNode==null||obj.parentNode==‘‘||obj.parentNode==undefined){
                break;
            }else{
                if(obj.className){
                    str[i] = ‘.‘+obj.className.replace(‘ ‘,‘.‘);
                }else{
                    if(obj.id){
                        str[i] = ‘#‘+obj.id;
                    }else{
                        str[i] = obj.tagName;
                    }
                }
                i++;
                obj = obj.parentNode;
            }

        }
        str.reverse();
        return str.toString().replace(/,/g,‘ ‘).toLowerCase();
    }

    document.addEventListener(‘click‘, function(e){
         //点击li时,返回:html body #page .content.main .refer ul li
        console.log(genCssSelector(e.target));
    })

基本功还是不行,还是欠缺锻炼,看来还得多打代码了。

原文地址:https://www.cnblogs.com/acefeng/p/8626813.html

时间: 2024-12-16 07:17:10

阿里的前端前期小测验的相关文章

IT职场经纬 阿里web前端面试考题,你能答出来几个?

有很多小伙伴们特别关心面试Web前端开发工程师时,面试官都会问哪些问题.今天小卓把收集来的"阿里Web前端开发面试题"整理贴出来分享给大家伙看看,赶紧收藏起来做准备吧~~ 一.CSS盒子模型,绝对定位和相对定位 1)清除浮动,什么时候需要清除浮动,清除浮动都有哪些方法 2)如何保持浮层水平垂直居中 3)position 和 display 的取值和各自的意思和用法 4)样式的层级关系,选择器优先级,样式冲突,以及抽离样式模块怎么写,说出思路,有无实践经验 二.JavaScript基础

C#开发微信门户及应用(47) - 整合Web API、微信后台管理及前端微信小程序的应用方案

在微信开发中,我一直强调需要建立一个比较统一的Web API接口体系,以便实现数据的集中化,这样我们在常规的Web业务系统,Winform业务系统.微信应用.微信小程序.APP等方面,都可以直接调用基于JSON数据格式的Web API接口,在我之前的几篇随笔中,对这方面都有一定的介绍,本篇继续这个主题,细致深入的阐述如何在接口和源码的基础上整合Web API.微信后台管理及前端微信小程序的应用方案. 1.基于Web API的微信开发框架 首先我们各个业务模块,都应该围绕着Web API进行展开,

【C++探索之旅】第一部分第十三课:第一部分小测验

内容简介 1.第一部分十三课:第一部分小测验 2.第二部分第一课预告:面向对象初探,string的惊天内幕 第一部分小测验 上一课中,我们学习了指针这个重中之重. 那么,我们第一部分的课程也圆满地落幕了.不过,小编怎么会这么轻易放过你呢?(其实我是善良的社会主义好青年好嘛). 因此,必须来点简单的测试题,检测一下学习的果效.不难的,不要担心. 测试题目 1.C++之父是谁? Birj Tromman Bjarne Stroustrup Barj Grossoup 2.将文本编辑器,编译器和调试器

阿里无线前端性能优化指南

前言 阿里无线前端团队在过去一年对所负责业务进行了全面的性能优化.以下是我们根据实际经验总结的优化指南,希望对大家有所帮助. 第一部分仅包括数据加载期优化. 图片控制 对于网页特别是电商类页面来说,图片通常会占据了大量的视觉空间,是页面中最为重要的展现内容,并且占据网页传输字节的大部分.因此,对图片的优化是我们性能优化的重点. 启用WebP WebP是一种支持有损压缩和无损压缩的图片文件格式,派生自视频编码格式 VP8.根据 Google 官方的数据,无损压缩后的 WebP 比 PNG 文件少了

Web前端学习小建议

这里跟大家扯一扯学习前端的小方法,是我自己的学习方法,大家凑合看看,倒也不一定对~ 在写css前,其实html的结构要是比较合理的,这样写css也会比较顺手.在写一个网页之前,建议先琢磨几分钟,不要上来就写.多去看看别人是怎么写的,然后结合自己的项目,心中有一个大致规划.可以先把最外层轮廓写好,先不着急去写某一个具体的部分. 这里给大家分享一些css小技巧: 1.使用reset.css火狐和IE这两种不同的浏览器,在绘制CSS样式方法上截然不同.这种情况下,使用reset.css重置所有的基本样

来试试这个来自静态代码分析工具PVS Studio提供C++的小测验吧

博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:来试试这个来自静态代码分析工具PVS Studio提供C++的小测验吧.

Java web 小测验

题目要求: 1登录账号:要求由6到12位字母.数字.下划线组成,只有字母可以开头:(1分) 2登录密码:要求显示“• ”或“*”表示输入位数,密码要求八位以上字母.数字组成.(1分) 3性别:要求用单选框或下拉框实现,选项只有“男”或“女”:(1分) 4学号:要求八位数字组成,前四位为“2018”开头,输入自己学号:(1分) 5姓名:输入自己的姓名: 5电子邮箱:要求判断正确格式[email protected]:(1分) 6点击“添加”按钮,将学生个人信息存储到数据库中.(3分) 7可以演示连

iconfont阿里妈妈前端小图标使用方法详解

图标选购网址:http://www.iconfont.cn/ 1.从阿里妈妈网站选购好小图标,加入购物车,下载好文件: 2.把字体文件放入字体(font)文件夹(tff)(woff),(eot) 3.样式表里面引入以下内容(../font 这个是根据相对路径做出相应的选择) @font-face {font-family: 'iconfont';     src: url('../font/iconfont.eot'); /* IE9*/     src: url('../font/iconfo

web前端性能测试小点

关于前端性能的文章: http://www.cnblogs.com/fnng/archive/2011/09/19/2181894.html web应用的前端性能响应时间指浏览器的页面加载时间.浏览器的页面加载时间包括对html的解析,对页面图片及css等文件的获取和加载.客户端脚本的执行时间以及对你页面进行展现所花费的时间.这个与并发用户量的大小并没有直接的关系,主要关注:如何提高浏览器下载和执行资源的并发性,如何让浏览器尽快开始渲染页面,如何让浏览器尽可能充分的利用缓存.在yahoo中,到少