首页 > 其他分享 >JQuery面试题

JQuery面试题

时间:2024-05-23 10:21:51浏览次数:14  
标签:JQuery jQuery 面试题 name 元素 red 选择器 css

*JQuery面试题*

1. jQuery 库中的 $() 是什么?(答案如下)

$() 函数是 jQuery() 函数的别称,乍一看这很怪异,还使 jQuery 代码晦涩难懂。一旦你适应了,你会爱上它的简洁。$() 函数用于将任何对象包裹成 jQuery 对象,接着你就被允许调用定义在 jQuery 对象上的多个不同方法。你甚至可以将一个选择器字符串传入 $() 函数,它会返回一个包含所有匹配的 DOM 元素数组的 jQuery 对象。这个问题我已经见过好几次被提及,尽管它非常基础,它经常被用来区分一个开发人员是否了解 jQuery。

2. 网页上有 5 个

元素,如何使用 jQuery来选择它们?(答案)

另一个重要的 jQuery 问题是基于选择器的。jQuery 支持不同类型的选择器,例如 ID 选择器、class 选择器、标签选择器。鉴于这个问题没提到 ID 和 class,你可以用标签选择器来选择所有的 div 元素。jQuery 代码:$("div"),这样会返回一个包含所有 5 个 div 标签的 jQuery 对象。更详细的解答参见上面链接的文章。

3. jQuery 里的 ID 选择器和 class 选择器有何不同?(答案)

如果你用过 CSS,你也许就知道 ID 选择器和 class 选择器之间的差异,jQuery 也同样如此。ID 选择器使用 ID 来选择元素,比如 #element1,而 class 选择器使用 CSS class 来选择元素。当你只需要选择一个元素时,使用 ID 选择器,而如果你想要选择一组具有相同 CSS class 的元素,就要用 class 选择器。在面试过程中,你有很大几率会被要求使用 ID 选择器和 class 选择器来写代码。下面的 jQuery 代码使用了 ID 选择器和 class 选择器:

$('#LoginTextBox') // Returns element wrapped as jQuery object with id='LoginTextBox'

$('.active') // Returns all elements with CSS class active.

正如你所见,从语法角度来说,ID 选择器和 class 选择器的另一个不同之处是,前者用字符”#”而后者用字符”.”。更详细的分析和讨论参见上面的答案链接。

4. 如何在点击一个按钮时使用 jQuery 隐藏一个图片?

这是一个事件处理问题。jQuery为按钮点击之类的事件提供了很好的支持。你可以通过以下代码去隐藏一个通过ID或class定位到的图片。你需要知道如何为按钮设置事件并执行hide() 方法,代码如下所示:

$('#ButtonToClick').click(function(){

$('#ImageToHide').hide();

});

我喜欢这个问题,因为很贴近实际使用,代码也不复杂。

5. $(document).ready() 是个什么函数?为什么要用它?(答案)

这个问题很重要,并且常常被问到。 ready() 函数用于在文档进入ready状态时执行代码。当DOM 完全加载(例如HTML被完全解析DOM树构建完成时),jQuery允许你执行代码。使用$(document).ready()的最大好处在于它适用于所有浏览器,jQuery帮你解决了跨浏览器的难题。需要进一步了解的用户可以点击 answer链接查看详细讨论。

6. JavaScript window.onload 事件和 jQuery ready 函数有何不同?(答案)

这个问答是紧接着上一个的。JavaScript window.onload 事件和 jQuery ready 函数之间的主要区别是,前者除了要等待 DOM 被创建还要等到包括大型图片、音频、视频在内的所有外部资源都完全加载。如果加载图片和媒体内容花费了大量时间,用户就会感受到定义在 window.onload 事件上的代码在执行时有明显的延迟。

另一方面,jQuery ready() 函数只需对 DOM 树的等待,而无需对图像或外部资源加载的等待,从而执行起来更快。使用 jQuery $(document).ready() 的另一个优势是你可以在网页里多次使用它,浏览器会按它们在 HTML 页面里出现的顺序执行它们,相反对于 onl oad 技术而言,只能在单一函数里使用。鉴于这个好处,用 jQuery ready() 函数比用 JavaScript window.onload 事件要更好些。

7. 如何找到所有 HTML select 标签的选中项?(答案如下)

这是面试里比较棘手的 jQuery 问题之一。这是个基础的问题,但是别期望每个 jQuery 初学者都知道它。你能用下面的 jQuery 选择器获取所有具备 multiple=true 的 标签。

8. jQuery 里的 each() 是什么函数?你是如何使用它的?(答案如下)

each() 函数就像是 Java 里的一个 Iterator,它允许你遍历一个元素集合。你可以传一个函数给 each() 方法,被调用的 jQuery 对象会在其每个元素上执行传入的函数。有时这个问题会紧接着上面一个问题,举个例子,如何在 alert 框里显示所有选中项。我们可以用上面的选择器代码找出所有选中项,然后我们在 alert 框中用 each() 方法来一个个打印它们,代码如下:

$('[name=NameOfSelectedTag] :selected').each(function(selected) {

alert($(selected).text());

});

其中 text() 方法返回选项的文本。

9. 你是如何将一个 HTML 元素添加到 DOM 树中的?(答案如下)

你可以用 jQuery 方法 appendTo() 将一个 HTML 元素添加到 DOM 树中。这是 jQuery 提供的众多操控 DOM 的方法中的一个。你可以通过 appendTo() 方法在指定的 DOM 元素末尾添加一个现存的元素或者一个新的 HTML 元素。

10. 你能用 jQuery 代码选择所有在段落内部的超链接吗?(答案略)

这是另一个关于选择器的 jQuery 面试题。就像其他问题那样,只需一行 jQuery 代码就能搞定。你可以使用下面这个 jQuery 代码片段来选择所有嵌套在段落(

标签)内部的超链接(标签)……

11. $(this) 和 this 关键字在 jQuery 中有何不同?(答案如下)

这对于很多 jQuery 初学者来说是一个棘手的问题,其实是个简单的问题。$(this) 返回一个 jQuery 对象,你可以对它调用多个 jQuery 方法,比如用 text() 获取文本,用val() 获取值等等。而 this 代表当前元素,它是 JavaScript 关键词中的一个,表示上下文中的当前 DOM 元素。你不能对它调用 jQuery 方法,直到它被 $() 函数包裹,例如 $(this)。

12. 你如何使用jQuery来提取一个HTML 标记的属性 例如. 链接的href? (答案)

attr() 方法被用来提取任意一个HTML元素的一个属性的值. 你首先需要利用jQuery选择及选取到所有的链接或者一个特定的链接,然后你可以应用attr()方法来获得他们的href属性的值。下面的代码会找到页面中所有的链接并返回href值:

$('a').each(function(){

alert($(this).attr('href'));

});

13. 你如何使用jQuery设置一个属性值? (答案)

前面这个问题之后额外的一个后续问题是,attr()方法和jQuery中的其它方法一样,能力不止一样. 如果你在调用attr()的同时带上一个值 例如. attr(name, value), 这里name是属性的名称,value是属性的新值。

14. jQuery中 detach() 和 remove() 方法的区别是什么? (答案)

尽管 detach() 和 remove() 方法都被用来移除一个DOM元素, 两者之间的主要不同在于 detach() 会保持对过去被解除元素的跟踪, 因此它可以被取消解除, 而 remove() 方法则会保持过去被移除对象的引用. 你也还可以看看 用来向DOM中添加元素的 appendTo() 方法.

15. 你如何利用jQuery来向一个元素中添加和移除CSS类? (答案)

通过利用 addClass() 和 removeClass() 这两个 jQuery 方法。动态的改变元素的class属性可以很简单例如. 使用类“.active"来标记它们的未激活和激活状态,等等.

16. 使用 CDN 加载 jQuery 库的主要优势是什么 ? (答案)

这是一个稍微高级点儿的jQuery问题。好吧,除了报错节省服务器带宽以及更快的下载速度这许多的好处之外, 最重要的是,如果浏览器已经从同一个CDN下载类相同的 jQuery 版本, 那么它就不会再去下载它一次. 因此今时今日,许多公共的网站都将jQuery用于用户交互和动画, 如果浏览器已经有了下载好的jQuery库,网站就能有非常好的展示机会。

17. jQuery.get() 和 jQuery.ajax() 方法之间的区别是什么?

ajax() 方法更强大,更具可配置性, 让你可以指定等待多久,以及如何处理错误。get() 方法是一个只获取一些数据的专门化方法。

18. jQuery 中的方法链是什么?使用方法链有什么好处?

方法链是对一个方法返回的结果调用另一个方法,这使得代码简洁明了,同时由于只对 DOM 进行了一轮查找,性能方面更加出色。

19. 你要是在一个 jQuery 事件处理程序里返回了 false 会怎样?

这通常用于阻止事件向上冒泡。

20. 哪种方式更高效:document.getElementbyId("myId") 还是 $("#myId")?

第一种,因为它直接调用了 JavaScript 引擎。

21.jquery.基本选择器

​ (1)标签选择器

​ $("h2").css("color","red");

​ (2)类选择器

​ $(".title").css("color","red");

​ (3)ID选择器

​ $("#title").css("color","red");

​ (4)并集选择器

​ $("h2,h3,.title,#title").css("color","red");

​ (5)全局选择器

​ $("*").css("color","red");

22.jquery层次选择器

​ (1)后代选择器

​ $("#box p").css("color","red")

​ 所有box下面的p标签字体都换成红色

​ (2)子选择器

​ $("#box>p").css("color","red");

​ 所有id为box的儿子元素字体变成红色

​ (3)相邻元素选择器:

​ $(".p2+p").css("color","red");

​ class为p2的元素下一个为p的字体变红

​ (4)同辈元素选择器:

​ $(".p2~p").css("color","red");

​ class为p2后面所有为p元素的字体都变成红色

23.jquery属性选择器

​ (1)[name]:含有name属性的选中

​ (2)[name='name'],name的值是name的被选中

​ (3)[name!=name],name的值不是name的被选中

​ (4)[name^=na],name的值以na开头的被选中

​ (5)[name$=na],name的值以na结束的被选中

​ (6)[name*=na],name的值中包含na的被选中

​ (7)[name='text'][id='name'],属性name的值等于name,并且id也等于name的被选中

24. jquery基本过滤选择器

​ (1)获取第一个li元素:

​ $("li:first").css("color","red");

​ (2)获取最后一个li元素:

​ $("li:last").css("color","red");

​ (3)获取偶数行的元素:

​ $("li:even").css("color","red");

​ (4)获取奇数行的元素:

​ $("li:odd").css("color","red");

​ (5)获取索引是2的元素

​ $("li:eq(2)").css("color","red");

​ (6)获取索引大于2的元素,索引从0开始

​ $("li:gt(2)").css("color","red");

​ (7)获取索引小于2的元素

​ $("li:lt(2)").css("color","red");

​ (8)获取所有标题元素

​ $(":header").css("color","red");

​ (9)获取光标聚焦的元素

​ $(":focus").css("color","red");

25. jquery可见性过滤选择器

26. jquery光标聚焦:

​ $("[name='text']").focus();

27. jquery给表单里面赋值:

​ $("[name='pass']").val("值");

28. jquery获取表单的值:

​ $("#input").val();

*J**s面试题*

1.截取字符串abcdace的acealert('abcdace'.substring(4));

2.规避javascript多人开发函数重名问题命名空间封闭空间js模块化mvc(数据层、表现层、控制层)seajs变量转换成对象的属性对象化

3.JavaScript中如何检测一个变量是一个String类型?请写出函数实现 typeof(obj) == 'string' obj.constructor == String;

\4. 请解释一下什么是语义化的HTML。内容使用特定标签,通过标签就能大概了解整体页面的布局分布

\5. 为什么利用多个域名来存储网站资源会更有效?确保用户在不同地区能用最快的速度打开网站,其中某个域名崩溃用户也能通过其他郁闷访问网站

6.请说出三种减低页面加载时间的方法1、压缩css、js文件2、合并js、css文件,减少http请求3、外部js、css文件放在最底下4、减少dom操作,尽可能用变量替代不必要的dom操作

7.什么是FOUC?你如何来避免FOUC?由于css引入使用了@import 或者存在多个style标签以及css文件在页面底部引入使得css文件加载在html之后导致页面闪烁、花屏用link加载css文件,放在head标签里面

8.文档类型的作用是什么?你知道多少种文档类型?影响浏览器对html代码的编译渲染html2.0xHtmlhtml5

9.浏览器标准模式和怪异模式之间的区别是什么?盒模型解释不同

10.闭包子函数能被外部调用到,则该作用连上的所有变量都会被保存下来。

11.请解释什么是Javascript的模块模式,并举出实用实例。js模块化mvc(数据层、表现层、控制层)seajs命名空间

12.你如何组织自己的代码?是使用模块模式,还是使用经典继承的方法?对内:模块模式对外:继承

13.你如何优化自己的代码?代码重用避免全局变量(命名空间,封闭空间,模块化mvc..)拆分函数避免函数过于臃肿注释

14.你能解释一下JavaScript中的继承是如何工作的吗?子构造函数中执行父构造函数,并用call\apply改变this克隆父构造函数原型上的方法

15.请尽可能详尽的解释AJAX的工作原理。创建ajax对象(XMLHttpRequest/ActiveXObject(Microsoft.XMLHttp))判断数据传输方式(GET/POST)打开链接 open()发送 send()当ajax对象完成第四步(onreadystatechange)数据接收完成,判断http响应状态(status)200-300之间或者304(缓存)执行回调函数

标签:JQuery,jQuery,面试题,name,元素,red,选择器,css
From: https://www.cnblogs.com/wenyuan519/p/18207764

相关文章

  • 2024年最新java(高级)面试题
    1.创建对象的几种方式使用new关键字:使用new关键字可以在堆内存中创建一个新的对象。通过反射机制:通过Java反射机制,可以在运行时动态地获取类的信息并创建对象。这种方式可以通过Class类的newInstance()方法或Constructor类的newInstance()方法来创建对象。Clas......
  • 2024最新Java面试题——java基础
    1.如何理解OOP面向对象编程       在面向对象编程中,程序被组织成一系列互相关联和相互作用的对象,每个对象都有自己的属性和方法。对象之间通过消息传递的方式进行交互,通过定义类和实例化对象来创建具体的对象。       面向对象是一种编程思想,也是一种编程模式,将......
  • Java核心面试知识集—Kafka面试题
    目录基础篇1、TCP、UDP的区别?2、TCP协议如何保证可靠传输?3、TCP的握手、挥手机制?4、TCP的粘包/拆包原因及其解决方法是什么?5、Netty的粘包/拆包是怎么处理的,有哪些实现?6、同步与异步、阻塞与非阻塞的区别?7、说说网络IO模型?8、BIO、NIO、AIO分别是什么?9、select、poll、epoll的机制......
  • java面试题
    面向对象的基本特征?分别什么含义封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。多态:多态性是指允许不同类的对象对同一消息作出响应。重载和重写的区别?重载:在......
  • Java核心面试知识集—大厂数据库面试题
    事务四大特性(ACID)原子性、一致性、隔离性、持久性?原子性(Atomicity)原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。一致性(Consistency)事务开始前和结束后,数据库的完整性......
  • Java核心面试知识集—zookeeper面试题
    1.ZooKeeper是什么?ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。客户端的读请求可......
  • Java核心面试知识集—Tomcat面试题
    Tomcat是什么?Tomcat服务器Apache软件基金会项目中的一个核心项目,是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。Tomcat的缺省端口是多少,怎么修改找到Tomcat目录下的conf文件......
  • Java核心面试知识集—Spring面试题
    Spring概述(10)什么是spring?Spring是一个轻量级Java开发框架,最早有RodJohnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEEfull-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,......
  • Java核心面试知识集—SpringMVC面试题
    概述什么是SpringMVC?简单介绍下你对SpringMVC的理解?SpringMVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把模型-视图-控制器分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。SpringMVC......
  • Java核心面试知识集—SpringBoot面试题
    概述什么是SpringBoot?SpringBoot是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要是简化了使用Spring的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。SpringBoot有哪些优点?SpringBoot主要有如下优点:容易上手,提升开发效率,为Spring开发......