- jQuery 库中的 $() 是什么?(答案如下)
$() 函数是 jQuery() 函数的别称,乍一看这很怪异,还使 jQuery 代码艰涩难懂。一旦你适应了,你会爱上它的简洁。$() 函数用于将任何对象包裹成 jQuery 对象,接着你就被容许调用定义在 jQuery 对象上的多个不同办法。你甚至能够将一个选择器字符串传入 $() 函数,它会返回一个蕴含所有匹配的 DOM 元素数组的 jQuery 对象。这个问题我曾经见过好几次被提及,只管它十分根底,它常常被用来辨别一个开发人员是否理解 jQuery。
- 网页上有 5 个 <div> 元素,如何应用 jQuery 来抉择它们?(答案)
另一个重要的 jQuery 问题是基于选择器的。jQuery 反对不同类型的选择器,例如 ID 选择器、class 选择器、标签选择器。鉴于这个问题没提到 ID 和 class,你能够用标签选择器来抉择所有的 div 元素。jQuery 代码:$(“div”),这样会返回一个蕴含所有 5 个 div 标签的 jQuery 对象。更具体的解答参见下面链接的文章。
- 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 选择器的另一个不同之处是,前者用字符”#”而后者用字符”.”。更具体的剖析和探讨参见下面的答案链接。
- 如何在点击一个按钮时应用 jQuery 暗藏一个图片?
这是一个事件处理问题。jQuery 为按钮点击之类的事件提供了很好的反对。你能够通过以下代码去暗藏一个通过 ID 或 class 定位到的图片。你须要晓得如何为按钮设置事件并执行 hide() 办法,代码如下所示:
$(‘#ButtonToClick’).click(function(){
$('#ImageToHide').hide();
});
我喜爱这个问题,因为很贴近理论应用,代码也不简单。
- $(document).ready() 是个什么函数?为什么要用它?(answer)
这个问题很重要,并且经常被问到。ready() 函数用于在文档进入 ready 状态时执行代码。当 DOM 齐全加载(例如 HTML 被齐全解析 DOM 树构建实现时),jQuery 容许你执行代码。应用 $(document).ready() 的最大益处在于它实用于所有浏览器,jQuery 帮你解决了跨浏览器的难题。须要进一步理解的用户能够点击 answer 链接查看具体探讨。
- 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 事件要更好些。
- 如何找到所有 HTML select 标签的选中项?(答案如下)
这是面试里比拟辣手的 jQuery 问题之一。这是个根底的问题,然而别冀望每个 jQuery 初学者都晓得它。你能用上面的 jQuery 选择器获取所有具备 multiple=true 的 <select > 标签的选中项:
$(‘[name=NameOfSelectedTag] :selected’)
这段代码联合应用了属性选择器和 :selected 选择器,后果只返回被选中的选项。你可按需批改它,比方用 id 属性而不是 name 属性来获取 <select> 标签。
- jQuery 里的 each() 是什么函数?你是如何应用它的?(答案如下)
each() 函数就像是 Java 里的一个 Iterator,它容许你遍历一个元素汇合。你能够传一个函数给 each() 办法,被调用的 jQuery 对象会在其每个元素上执行传入的函数。有时这个问题会紧接着下面一个问题,举个例子,如何在 alert 框里显示所有选中项。咱们能够用下面的选择器代码找出所有选中项,而后咱们在 alert 框中用 each() 办法来一个个打印它们,代码如下:
$(‘[name=NameOfSelectedTag] :selected’).each(function(selected) {
alert($(selected).text());
});
其中 text() 办法返回选项的文本。
- 你是如何将一个 HTML 元素增加到 DOM 树中的?(答案如下)
你能够用 jQuery 办法 appendTo() 将一个 HTML 元素增加到 DOM 树中。这是 jQuery 提供的泛滥操控 DOM 的办法中的一个。你能够通过 appendTo() 办法在指定的 DOM 元素开端增加一个现存的元素或者一个新的 HTML 元素。
- 你能用 jQuery 代码抉择所有在段落外部的超链接吗?(答案略)
这是另一个对于选择器的 jQuery 面试题。就像其余问题那样,只需一行 jQuery 代码就能搞定。你能够应用上面这个 jQuery 代码片段来抉择所有嵌套在段落(<p> 标签)外部的超链接(标签)……
- $(this) 和 this 关键字在 jQuery 中有何不同?(答案如下)
这对于很多 jQuery 初学者来说是一个辣手的问题,其实是个简略的问题。$(this) 返回一个 jQuery 对象,你能够对它调用多个 jQuery 办法,比方用 text() 获取文本,用 val() 获取值等等。而 this 代表以后元素,它是 JavaScript 关键词中的一个,示意上下文中的以后 DOM 元素。你不能对它调用 jQuery 办法,直到它被 $() 函数包裹,例如 $(this)。
- 你如何应用 jQuery 来提取一个 HTML 标记的属性 例如. 链接的 href? (答案)
attr() 办法被用来提取任意一个 HTML 元素的一个属性的值. 你首先须要利用 jQuery 抉择及选取到所有的链接或者一个特定的链接,而后你能够利用 attr() 办法来取得他们的 href 属性的值。上面的代码会找到页面中所有的链接并返回 href 值:
$(‘a’).each(function(){
alert($(this).attr(‘href’));
});
- 你如何应用 jQuery 设置一个属性值? (答案)
后面这个问题之后额定的一个后续问题是,attr() 办法和 jQuery 中的其它办法一样,能力不止一样. 如果你在调用 attr() 的同时带上一个值 例如. attr(name, value), 这里 name 是属性的名称,value 是属性的新值。
- jQuery 中 detach() 和 remove() 办法的区别是什么? (答案)
只管 detach() 和 remove() 办法都被用来移除一个 DOM 元素, 两者之间的次要不同在于 detach() 会放弃对过来被解除元素的跟踪, 因而它能够被勾销解除, 而 remove() 办法则会放弃过来被移除对象的援用. 你也还能够看看 用来向 DOM 中增加元素的 appendTo() 办法.
- 你如何利用 jQuery 来向一个元素中增加和移除 CSS 类? (答案)
通过利用 addClass() 和 removeClass() 这两个 jQuery 办法。动静的扭转元素的 class 属性能够很简略例如. 应用类“.active” 来标记它们的未激活和激活状态,等等.
- 应用 CDN 加载 jQuery 库的次要劣势是什么 ? (答案)
这是一个略微高级点儿的 jQuery 问题。好吧,除了报错节俭服务器带宽以及更快的下载速度这许多的益处之外, 最重要的是,如果浏览器曾经从同一个 CDN 下载类雷同的 jQuery 版本, 那么它就不会再去下载它一次. 因而今时今日,许多公共的网站都将 jQuery 用于用户交互和动画, 如果浏览器曾经有了下载好的 jQuery 库,网站就能有十分好的展现机会。
- jQuery.get() 和 jQuery.ajax() 办法之间的区别是什么?
ajax() 办法更弱小,更具可配置性, 让你能够指定期待多久,以及如何处理错误。get() 办法是一个只获取一些数据的专门化办法。
- jQuery 中的办法链是什么?应用办法链有什么益处?
办法链是对一个办法返回的后果调用另一个办法,这使得代码简洁明了,同时因为只对 DOM 进行了一轮查找,性能方面更加杰出。
- 你要是在一个 jQuery 事件处理程序里返回了 false 会怎么?
这通常用于阻止事件向上冒泡。
- 哪种形式更高效: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