最常见的20个jQuery⾯试问题及答案
1. jQuery 库中的$()是什么?(答案如下)
$()函数是jQuery()函数的别称,乍⼀看这很怪异,还使 jQuery 代码晦涩难懂。⼀旦你适应了,你会爱上它的简洁。$()函数⽤于将任何对象包裹成 jQuery 对象,接着你就被允许调⽤定义在 jQuery 对象上的多个不同⽅法。你甚⾄可以将⼀个选择器字符串传⼊$()函数,它会返回⼀个包含所有匹配的DOM元素数组的 jQuery 对象。这个问题我已经见过好⼏次被提及,尽管它⾮常基础,它经常被⽤来区分⼀个开发⼈员是否了解 jQuery。
2.⽹页上有5个<div>元素,如何使⽤ 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()是个什么函数?为什么要⽤它?(answer)
这个问题很重要,并且常常被问到。ready()函数⽤于在⽂档进⼊ready状态时执⾏代码。当DOM完全加载(例如HTML被完全解析DOM树构建完成时),jQu ery允许你执⾏代码。使⽤$(document).ready()的最⼤好处在于它适⽤于所有浏览器,jQuery帮你解决了跨浏览器的难题。需要进⼀步了解的⽤户可以点击 ans wer链接查看详细讨论。
6. load 事件和 jQuery ready 函数有何不同?(答案)
这个问答是紧接着上⼀个的。load 事件和 jQuery ready 函数之间的主要区别是,前者除了要等待DOM被创建还要等到包括⼤型图⽚、⾳频、视频在内的所有外部资源都完全加载。如果加载图⽚和媒体内容花费了⼤量时间,⽤户就会感受到定义在 load 事件上的代码在执⾏时有明显的延迟。
另⼀⽅⾯,jQuery ready()函数只需对DOM树的等待,⽽⽆需对图像或外部资源加载的等待,从⽽执⾏起来更快。使⽤ jQuery $(document).ready()的另⼀个优势是你可以在⽹页⾥多次使⽤它,浏览器会
按它们在HTML页⾯⾥出现的顺序执⾏它们,相反对于 onload 技术⽽⾔,只能在单⼀函数⾥使⽤。鉴于这个好处,⽤ jQuery ready()函数⽐⽤ load 事件要更好些。
7.如何到所有HTML select 标签的选中项?(答案如下)
这是⾯试⾥⽐较棘⼿的 jQuery 问题之⼀。这是个基础的问题,但是别期望每个 jQuery 初学者都知道它。你能⽤下⾯的 jQuery 选择器获取所有具备 multiple=tr ue的<select >标签的选中项:
jquery在一个元素后追加标签
$('[name=NameOfSelectedTag] :selected')
这段代码结合使⽤了属性选择器和:selected 选择器,结果只返回被选中的选项。你可按需修改它,⽐如⽤ id 属性⽽不是 name 属性来获取<select>标签。
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 代码选择所有在段落内部的超链接吗?(答案略)
10.你能⽤ jQuery 代码选择所有在段落内部的超链接吗?(答案略)
这是另⼀个关于选择器的 jQuery ⾯试题。就像其他问题那样,只需⼀⾏ jQuery 代码就能搞定。你可以使⽤下⾯这个 jQuery 代码⽚段来选择所有嵌套在段落(<p>标签)内部的超链接(<a>标签)……
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()会保持对过去被解除元素的跟踪,因此它可以被取消解除,⽽re move()⽅法则会保持过去被移除对象的引⽤.你也还可以看看⽤来向DOM中添加元素的appendTo()⽅法.
15.你如何利⽤jQuery来向⼀个元素中添加和移除CSS类?(答案)
通过利⽤addClass()和removeClass()这两个 jQuery ⽅法。动态的改变元素的class属性可以很简单例如.使⽤类“.active"来标记它们的未激活和激活状态,等等.
16.使⽤CDN加载 jQuery 库的主要优势是什么?(答案)
这是⼀个稍微⾼级点⼉的jQuery问题。好吧,除了报错节省服务器带宽以及更快的下载速度这许多的好处之外,最重要的是,如果浏览器已经从同⼀个CDN下载类相同的 jQuery 版本,那么它就不会再去下载它⼀次.因此今时今⽇,许多公共的⽹站都将jQuery⽤于⽤户交互和动画,如果浏览器已经有了下载好的jQuery库,⽹站就能有⾮常好的展⽰机会。
17.  ()和 jQuery.ajax()⽅法之间的区别是什么?
ajax()⽅法更强⼤,更具可配置性,让你可以指定等待多久,以及如何处理错误。get()⽅法是⼀个只获取⼀些数据的专门化⽅法。
18. jQuery 中的⽅法链是什么?使⽤⽅法链有什么好处?
⽅法链是对⼀个⽅法返回的结果调⽤另⼀个⽅法,这使得代码简洁明了,同时由于只对DOM进⾏了⼀轮查,性能⽅⾯更加出⾊。
19.你要是在⼀个 jQuery 事件处理程序⾥返回了false会怎样?
这通常⽤于阻⽌事件向上冒泡。
20.哪种⽅式更⾼效:ElementbyId("myId")还是$("#myId")?
第⼀种,因为它直接调⽤了 JavaScript 引擎。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。