乐趣区

关于jquery:我在乐字节学习前端的第十-一-天最常见的20道jQuery经典面试题最常见的20道jQuery经典面试题

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

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

  1. 网页上有 5 个 <div> 元素,如何应用 jQuery 来抉择它们?(答案)

另一个重要的 jQuery 问题是基于选择器的。jQuery 反对不同类型的选择器,例如 ID 选择器、class 选择器、标签选择器。鉴于这个问题没提到 ID 和 class,你能够用标签选择器来抉择所有的 div 元素。jQuery 代码:$(“div”),这样会返回一个蕴含所有 5 个 div 标签的 jQuery 对象。更具体的解答参见下面链接的文章。

  1. 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 选择器的另一个不同之处是,前者用字符”#”而后者用字符”.”。更具体的剖析和探讨参见下面的答案链接。

  1. 如何在点击一个按钮时应用 jQuery 暗藏一个图片?

这是一个事件处理问题。jQuery 为按钮点击之类的事件提供了很好的反对。你能够通过以下代码去暗藏一个通过 ID 或 class 定位到的图片。你须要晓得如何为按钮设置事件并执行 hide() 办法,代码如下所示:

$(‘#ButtonToClick’).click(function(){

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

});
我喜爱这个问题,因为很贴近理论应用,代码也不简单。

  1. $(document).ready() 是个什么函数?为什么要用它?(answer)

这个问题很重要,并且经常被问到。ready() 函数用于在文档进入 ready 状态时执行代码。当 DOM 齐全加载(例如 HTML 被齐全解析 DOM 树构建实现时),jQuery 容许你执行代码。应用 $(document).ready() 的最大益处在于它实用于所有浏览器,jQuery 帮你解决了跨浏览器的难题。须要进一步理解的用户能够点击 answer 链接查看具体探讨。

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

这个问答是紧接着上一个的。JavaScript window.onload 事件和 jQuery ready 函数之间的次要区别是,前者除了要期待 DOM 被创立还要等到包含大型图片、音频、视频在内的所有内部资源都齐全加载。如果加载图片和媒体内容破费了大量工夫,用户就会感触到定义在 window.onload 事件上的代码在执行时有显著的提早。

另一方面,jQuery ready() 函数只需对 DOM 树的期待,而无需对图像或内部资源加载的期待,从而执行起来更快。应用 jQuery $(document).ready() 的另一个劣势是你能够在网页里屡次应用它,浏览器会按它们在 HTML 页面里呈现的程序执行它们,相同对于 onload 技术而言,只能在繁多函数里应用。鉴于这个益处,用 jQuery ready() 函数比用 JavaScript window.onload 事件要更好些。

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

这是面试里比拟辣手的 jQuery 问题之一。这是个根底的问题,然而别冀望每个 jQuery 初学者都晓得它。你能用上面的 jQuery 选择器获取所有具备 multiple=true 的 <select > 标签的选中项:

$(‘[name=NameOfSelectedTag] :selected’)
这段代码联合应用了属性选择器和 :selected 选择器,后果只返回被选中的选项。你可按需批改它,比方用 id 属性而不是 name 属性来获取 <select> 标签。

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

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

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

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

});
其中 text() 办法返回选项的文本。

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

你能够用 jQuery 办法 appendTo() 将一个 HTML 元素增加到 DOM 树中。这是 jQuery 提供的泛滥操控 DOM 的办法中的一个。你能够通过 appendTo() 办法在指定的 DOM 元素开端增加一个现存的元素或者一个新的 HTML 元素。

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

这是另一个对于选择器的 jQuery 面试题。就像其余问题那样,只需一行 jQuery 代码就能搞定。你能够应用上面这个 jQuery 代码片段来抉择所有嵌套在段落(<p> 标签)外部的超链接(标签)……

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

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

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

attr() 办法被用来提取任意一个 HTML 元素的一个属性的值. 你首先须要利用 jQuery 抉择及选取到所有的链接或者一个特定的链接,而后你能够利用 attr() 办法来取得他们的 href 属性的值。上面的代码会找到页面中所有的链接并返回 href 值:

$(‘a’).each(function(){
alert($(this).attr(‘href’));
});

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

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

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

只管 detach() 和 remove() 办法都被用来移除一个 DOM 元素, 两者之间的次要不同在于 detach() 会放弃对过来被解除元素的跟踪, 因而它能够被勾销解除, 而 remove() 办法则会放弃过来被移除对象的援用. 你也还能够看看 用来向 DOM 中增加元素的 appendTo() 办法.

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

通过利用 addClass() 和 removeClass() 这两个 jQuery 办法。动静的扭转元素的 class 属性能够很简略例如. 应用类“.active” 来标记它们的未激活和激活状态,等等.

  1. 应用 CDN 加载 jQuery 库的次要劣势是什么 ? (答案)

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

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

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

  1. jQuery 中的办法链是什么?应用办法链有什么益处?

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

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

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

  1. 哪种形式更高效:document.getElementbyId(“myId”) 还是 $(“#myId”)?

第一种,因为它间接调用了 JavaScript 引擎。xxxxxxxxxx var a = {x: ‘mx’,    y: function(a, b) {console.log(this.x);        console.log(a+b);   }}var b = a.y;b.call(a, 1, 2); // mx 3b.apply(a, [1, 2]); // mx 3b.bind(a, 1, 2)() // mx 3b.bind(a, 1)(2) // mx 3 js

退出移动版