17个基本的jQuery面试问题 *

最好的jQuery开发人员和工程师可以回答的全部基本问题. 在我们社区的推动下,我们鼓励专家提交问题并提供反馈.

现在就聘请一名顶级jQuery开发人员
Toptal标志是顶级自由软件开发人员的专属网络吗, 设计师, 金融专家, 产品经理, 和世界上的项目经理. 顶级公司雇佣Toptal自由职业者来完成他们最重要的项目.

面试问题

1.

解释下面的代码将做什么:

$("div#第一个, div.第一个, ol#items > [名字$='第一个']" )
查看答案

这段代码执行一个查询来检索任何

元素 id 第一个, + 所有
元素 class 第一个, + 元素的子元素
    元素和其 名字 属性以字符串结束 “第一”. 这是一次使用多个选择器的例子. 该函数将返回一个包含查询结果的jQuery对象.

2.

下面的代码适用于需要为页面上的所有按钮定义单击处理程序的应用程序, 包括以后可能会动态添加的那些按钮.

这段代码有什么问题, 以及如何将其固定为正常工作,即使是稍后动态添加的按钮?

//为所有按钮定义click处理程序
$("button").Bind ("click", 函数() {
    按钮被点击!" )
});

/* ... 一段时间后 ... */

//动态添加另一个按钮到页面
$("html").append( "" );
查看答案

调用后动态添加的按钮 bind () 有点击处理程序附加吗. 这是因为 bind () 方法只将处理程序附加到调用时存在的元素 bind () 是由.

这个问题通过使用“事件冒泡”来匹配当前和未来元素上的事件的函数来解决. 在过去,这是通过替换来完成的 bind ()生活(). 生活() 在jQuery 1.7虽然. 委托() 类似于 生活() 还提供了对事件必须在DOM中冒泡多远的控制.

但是,推荐的方法是使用 on(),它可以表现为 bind (), 生活(), or 委托() 取决于语法. 下面的代码将处理程序附加到所有当前和未来的按钮:

//为所有按钮定义click处理程序
$(文件).On ("click", "button", 函数() {
    按钮被点击!" )
});

/* ... 一段时间后 ... */

//动态添加另一个按钮到页面
$("html").append( "" );
3.

我将使用哪个选择器来查询所有ID为 结束 用一个特定的字符串? 此外,我如何修改选择器只检索

id以相同字符串结尾的元素? 提供一个示例.

查看答案

假设要检索id以" txtTitle "结尾的所有元素. 这可以使用以下选择器来完成:

$(“[id = ' txtTitle ']美元”)

只能取回

id以“txtTitle”结尾的元素,选择器将是:

$ (" div [id = ' txtTitle ']美元”)

申请加入Toptal的发展网络

并享受可靠、稳定、远程 自由职业者jQuery开发人员职位

申请成为自由职业者
4.

这是怎么回事 $ 在jQuery? 它是什么,它意味着什么?

此外,如何将jQuery与另一个JavaScript库结合使用 $ 为命名? 如果你能给出两个答案,那就加分了.

查看答案

$ 在JavaScript中没有特殊的含义,它可以自由地用于对象命名. 的别名 jQuery 对象和 jQuery () 函数.

然而,jQuery并没有垄断 $, 所以你可能会遇到这样的情况,你想使用它与另一个JS库也使用 $,因此会导致命名冲突. jQuery提供了 jQuery.noConflict () 方法正是出于这个原因. 调用此方法需要使用基础名称 jQuery 而是在后续对jQuery及其函数的引用中.

下面是jQuery文档中的一个例子:




或者,您也可以使用闭包来代替$.noConflict () 方法; e.g.:

(函数 ($) {
  //我们知道$的确切含义的代码
} (jQuery)); 
5.

给定以下HTML:

和以下CSS:

div#扩张器{
  宽度:100 px;
  身高:100 px;
  背景颜色:蓝色;
}

编写代码在jQuery动画 #扩张器 Div,在三秒钟内将其从100 x 100像素扩展到200 x 200像素.

查看答案

这可以在jQuery中这样做:

$("#扩张器").动画(
  {
    宽度:“200 px”,
    高度:“200 px”,
  },
  3000 );
6.

什么是jQuery中的方法链? 提供一个示例.

它有什么优点?

查看答案

方法链接是jQuery的一个特性,它允许在单个代码语句中按顺序对jQuery选择执行多个方法. 例如,以下代码片段是等效的:

没有链接:

$("button#play-movie").on(“点击”,播放电影);
$("button#play-movie").Css ("background-color", "orange");
$("button#play-movie").显示();

链接:

$("button#play-movie").开启(“点击”,播放影片)
                        .Css ("background-color", "orange")
                        .显示();

注意到链接, 此按钮只需要选择一次, 如果没有链条, jQuery必须在应用每个方法之前搜索整个DOM并找到按钮. 因此, 除了产生更简洁的代码, jQuery中的方法链提供了潜在的强大性能优势.

注意: 准确地说,应该注意的是,jQuery中的方法链接不是 只有 避免重复搜索整个DOM的方法. 还可以将一个变量设置为初始DOM搜索结果(例如.e.,在上面的例子中,可以设置一个变量等于 $("按钮#演电影” 然后调用 on(), css (), 显示() 该变量的方法). 但也就是说, 链接仍然是更简洁和高效的选择,并且不需要将结果缓存到局部变量中.

7.

解释一下下面代码的作用:

$("div").Css ("width", "300px").添加("p").Css ("background-color", "blue");
查看答案

这段代码使用方法链接来完成两件事. 首先,它选择所有的

元素,并将其CSS宽度更改为300px. 然后,它把所有的

元素的当前选择,所以它最终可以改变CSS背景颜色

元素变为蓝色.

8.

两者的区别是什么 jQuery.get ()jQuery.ajax ()?

查看答案

jQuery.ajax () 是jQuery提供的包罗万象的Ajax请求方法吗. 它允许创建高度定制的Ajax请求, 可以选择等待响应的时间, 如何处理失败, 请求是阻塞(同步)还是非阻塞(异步), 请求什么格式的响应, 还有更多的选择.

jQuery.get () 是使用快捷方法吗 jQuery.ajax () 创建一个Ajax请求,该请求通常用于简单的信息检索. 其他预构建的Ajax请求由jQuery提供,例如 jQuery.post (), jQuery.getScript (), jQuery.getJSON ().

9.

下面两行代码中哪一行效率更高? 解释你的答案.

文档.getElementById("logo");

or

$("#logo");
查看答案

第一行代码是没有jQuery的纯JavaScript,效率更高,速度更快. 执行第二行代码(即jQuery)将触发对JavaScript版本的调用.

jQuery构建在JavaScript之上,并使用底层的方法使DOM操作更容易, 以一些性能开销为代价. 最好记住,jQuery并不总是比普通的JavaScript更好. 始终考虑使用jQuery是否真的为您的项目提供了有用的优势.

10.

解释并对比……的用法 事件.pr事件Default ()事件.stopPropagation (). 提供一个示例.

查看答案

事件.stopPropagation () 阻止事件在事件链中冒泡,而 事件.pr事件Default () 只阻止浏览器对该事件的默认操作发生, 但是该事件仍然沿事件链向上传播.

例如,考虑下面的代码片段:

//在本例中,'foo'是一个包含'bar'按钮的div

$ (" # foo ").点击(函数(){
   //鼠标点击div 'foo'
});

$ (" # ").点击(函数(e) {
   //鼠标点击按钮'bar'
   e.stopPropagation ();
});

由于c所有 to stopPropagation () 在按钮的click处理程序中, 事件永远不会向div发起,因此它的click处理程序永远不会触发. 它有效地阻止父元素了解其子元素上的事件.

相反,如果将上面的调用替换为 stopPropagation () 呼唤着 pr事件Default (),只有浏览器的默认操作会被排除,但是div的click处理程序仍然会被触发.

(注:虽然 stopPropagation ()pr事件Default () 方法主要用于jQuery事件处理实现, 它们也适用于纯JavaScript.)

11.

返回完成了什么 从(a) jQuery事件处理程序, (b)锚标记的常规JavaScript onclick事件处理程序, (c)非锚标记的常规JavaScript onclick事件处理程序.g., div,按钮等.)?

查看答案

(a)从jQuery事件处理程序返回假实际上与调用相同 这两个 pr事件Default () stopPropagation () 在传递的jQuery事件对象上.

(b)从锚标记的常规JavaScript onclick事件处理程序返回假会阻止浏览器导航到链接地址 阻止事件通过DOM传播.

(c)从非锚标记的常规JavaScript onclick事件处理程序返回假.g., div,按钮等.)完全没有效果.

12.

jQuery提供了一个有用的 .克隆() 方法创建匹配元素的深度副本.

回答以下问题:

  1. 什么是“深度复制”??
  2. 正常情况下是什么 包含在克隆副本中? 怎样才能控制这些行为呢?
  3. 在使用时,潜在的“陷阱”是什么 .克隆() 方法? (提示:您通常会使用的元素属性是什么 想要克隆吗?)
查看答案

1. 什么是“深度复制”??

.克隆() 方法执行匹配元素集的深度复制, 这意味着它复制匹配的元素 以及它们的后代元素和文本节点.

2. 正常情况下是什么 包含在克隆副本中? 怎样才能控制这些行为呢?

正常情况下:

  • 元素数据中的对象和数组不会被复制,并将继续在克隆元素和原始元素之间共享. 要深度复制所有数据,必须“手动”复制每一个数据。.
  • 绑定到原始元素的任何事件处理程序都不会复制到克隆元素.

设置可选的 与DataAndEvents 参数 真正的 生成所有事件处理程序的副本,并将其绑定到元素的新副本.

从jQuery 1开始.4、所有元素数据(附) .数据() 方法)也被复制到新的副本.

从jQuery 1开始.5, 与DataAndEvents 可以选择性地增强 deepWithDataAndEvents 复制克隆元素的所有子元素的事件和数据.

3. 在使用时,潜在的“陷阱”是什么 克隆() 方法? (提示:您通常会使用的元素属性是什么 想要克隆吗?)

使用 .克隆() 产生重复元素是否有潜在的副作用 id 属性,它们应该是唯一的. 因此,克隆带有。的元素时 id 属性,重要的是要记住修改 id 在将克隆插入DOM之前.

13.

解释 .承诺() 方法,包括如何以及为什么使用它.

考虑下面的代码片段. 如果有5个

元素,开始和结束时间之间的差异将显示在页面上?

函数getMinsSecs() {
  var dt = new Date();
  返回dt.getMinutes() +“:”+ dt.getSeconds ();
}

$("input").On ("click"), 函数() {
  $( "p" ).append( "Start time: " + getMinsSecs() + "
" ); $("div").函数(I) { $(this).fdeout (1000 * (i * 2)); }); $("div").承诺().完成(函数(){ $( "p" ).append( "End time: " + getMinsSecs() + "
" ); }); });
查看答案

.承诺() 方法返回一个动态生成的Promise,一旦将特定类型的所有操作绑定到集合,该Promise就会被解析, 是否排队, 已经结束.

它接受两个可选参数:

  • 类型 -默认, 类型为“fx”, 这意味着当所选元素的所有动画完成时,返回的Promise将被解析.
  • 目标 —如果指定了目标对象, .承诺() 将附加到它,然后返回这个对象,而不是创建一个新的.

在提供的代码示例中, 显示的开始和结束时间之间的差异将为10秒. 这是因为 .承诺() 我会等待一切

动画(在这种情况下,所有 渐隐() 调用)完成,最后一个调用将在10秒内完成.e.(5 * 2秒).

14.

什么是正确的方式在jQuery中删除一个元素从DOM之前,它的承诺是解决?

查看答案

jQuery中返回的Promise被链接到 延迟的对象 存储在 .数据() 对于一个元素. 自 .remove () 方法将删除元素的数据以及元素本身, 它将阻止元素中任何未解决的promise解析.

因此,如果需要在解析Promise之前从DOM中删除一个元素,使用 .分离() 取而代之的是 .removeData () 决议后.

15.

解释两者之间的区别 .分离().remove () jQuery中的方法.

查看答案

.分离().remove () 方法是一样的,除了 .分离() 保留与被删除元素和关联的所有jQuery数据 .remove () 不. .分离() 因此,当删除的元素可能需要在以后的时间重新插入到DOM中是有用的.

16.

两者有什么区别 文档.准备好()窗口.onload ()?

查看答案

文档.准备好() 事件发生时,所有HTML文档都已加载,但是 窗口.onload () 当所有内容(包括图像)已加载时发生. 所以一般来说 文档.准备好() 事件首先触发.

17.

两者有什么区别 支持()attr ()?

查看答案

这两个 支持()attr () 用于获取或设置元素属性的指定属性的值,但是 attr () 返回属性的默认值,而 支持() 返回当前值。.

面试不仅仅是棘手的技术问题, 所以这些只是作为一个指南. 并不是每一个值得雇佣的“A”候选人都能回答所有的问题, 回答所有问题也不能保证成为A级考生. 一天结束的时候, 招聘仍然是一门艺术,一门科学,需要大量的工作.

为什么Toptal

厌倦了面试候选人? 不知道该问什么才能让你得到一份好工作?

让Toptal为你找到最合适的人.

现在就聘请一名顶级jQuery开发人员

我们的独家网络jQuery开发人员

希望找到一份jQuery开发人员的工作?

让Toptal为你找到合适的工作.

申请成为jQuery开发人员

工作机会从我们的网络

提出面试问题

提交的问题和答案将被审查和编辑, 并可能会或可能不会选择张贴, 由Toptal全权决定, 有限责任公司.

*所有字段均为必填项

寻找jQuery开发人员?

寻找 jQuery开发人员? 查看Toptal的jQuery开发人员.

< div >

安妮·亚当斯

自由jQuery开发人员

联合王国Toptal成员2015年9月4日

Anne是一名经验丰富的开发人员,曾在大公司和初创公司工作过. 他在美林(Merrill Lynch)做了8年的工程师,开发了金融交易应用程序, 安妮创立并建立了LoudUp, 她设计的一个基于音乐的社交网络, 发达, 从地面向上发射. 她擅长于 .。网技术和JavaScript.

显示更多

Toptal连接 排名前3% 世界各地的自由职业人才.

加入Toptal社区.

了解更多
\n\n\n\n\n

或者,您也可以使用闭包来代替$.noConflict () 方法; e.g.:

\n\n
(函数 ($) {\n  //我们知道$的确切含义的代码\n} (jQuery)); \n
\n","identifier":3280068},{"questionBody":"

给定以下HTML:

\n\n
\n
\n\n

和以下CSS:

\n\n
div#扩张器{\n  宽度:100 px;\n  身高:100 px;\n  背景颜色:蓝色;\n}\n
\n\n

编写代码在jQuery动画 #扩张器 Div,在三秒钟内将其从100 x 100像素扩展到200 x 200像素.

\n","answerBody":"

这可以在jQuery中这样做:

\n\n
$( \"#扩张器\" ).动画(\n  {\n    width: \"200px\",\n    height: \"200px\",\n  },\n  3000 );\n
\n","identifier":3280069},{"questionBody":"

什么是jQuery中的方法链? 提供一个示例.

\n\n

它有什么优点?

\n","answerBody":"

方法链接是jQuery的一个特性,它允许在单个代码语句中按顺序对jQuery选择执行多个方法. 例如,以下代码片段是等效的:

\n\n

没有链接:

\n\n
$( \"button#play-movie\" ).on( \"click\", playMovie );\n$( \"button#play-movie\" ).css( \"background-color\", \"orange\" );\n$( \"button#play-movie\" ).显示();\n
\n\n

链接:

\n\n
$( \"button#play-movie\" ).on( \"click\", playMovie )\n                        .css( \"background-color\", \"orange\" )\n                        .显示();\n
\n\n

注意到链接, 此按钮只需要选择一次, 如果没有链条, jQuery必须在应用每个方法之前搜索整个DOM并找到按钮. 因此, 除了产生更简洁的代码, jQuery中的方法链提供了潜在的强大性能优势.

\n\n

注意: 准确地说,应该注意的是,jQuery中的方法链接不是 只有 避免重复搜索整个DOM的方法. 还可以将一个变量设置为初始DOM搜索结果(例如.e.,在上面的例子中,可以设置一个变量等于 $( \"button#play-movie\" 然后调用 on(), css (), 显示() 该变量的方法). 但也就是说, 链接仍然是更简洁和高效的选择,并且不需要将结果缓存到局部变量中.

\n","identifier":3280070},{"questionBody":"

解释一下下面代码的作用:

\n\n
$( \"div\" ).css( \"width\", \"300px\" ).add( \"p\" ).css( \"background-color\", \"blue\" );\n
\n","answerBody":"

这段代码使用方法链接来完成两件事. 首先,它选择所有的

元素,并将其CSS宽度更改为300px. 然后,它把所有的

元素的当前选择,所以它最终可以改变CSS背景颜色

元素变为蓝色.

\n","identifier":3280071},{"questionBody":"

两者的区别是什么 jQuery.get ()jQuery.ajax ()?

\n","answerBody":"

jQuery.ajax () 是jQuery提供的包罗万象的Ajax请求方法吗. 它允许创建高度定制的Ajax请求, 可以选择等待响应的时间, 如何处理失败, 请求是阻塞(同步)还是非阻塞(异步), 请求什么格式的响应, 还有更多的选择.

\n\n

jQuery.get () 是使用快捷方法吗 jQuery.ajax () 创建一个Ajax请求,该请求通常用于简单的信息检索. 其他预构建的Ajax请求由jQuery提供,例如 jQuery.post (), jQuery.getScript (), jQuery.getJSON ().

\n","identifier":3280072},{"questionBody":"

下面两行代码中哪一行效率更高? 解释你的答案.

\n\n
文档.getElementById( \"logo\" );\n
\n\n

or

\n\n
$( \"#logo\" );\n
\n","answerBody":"

第一行代码是没有jQuery的纯JavaScript,效率更高,速度更快. 执行第二行代码(即jQuery)将触发对JavaScript版本的调用.

\n\n

jQuery构建在JavaScript之上,并使用底层的方法使DOM操作更容易, 以一些性能开销为代价. 最好记住,jQuery并不总是比普通的JavaScript更好. 始终考虑使用jQuery是否真的为您的项目提供了有用的优势.

\n","identifier":3280073},{"questionBody":"

解释并对比……的用法 事件.pr事件Default ()事件.stopPropagation (). 提供一个示例.

\n","answerBody":"

事件.stopPropagation () 阻止事件在事件链中冒泡,而 事件.pr事件Default () 只阻止浏览器对该事件的默认操作发生, 但是该事件仍然沿事件链向上传播.

\n\n

例如,考虑下面的代码片段:

\n\n
//在本例中,'foo'是一个包含'bar'按钮的div\n\n$(\"#foo\").点击(函数(){\n   //鼠标点击div 'foo'\n});\n\n$(\"#bar\").点击(函数(e) {\n   //鼠标点击按钮'bar'\n   e.stopPropagation ();\n});\n
\n\n

由于c所有 to stopPropagation () 在按钮的click处理程序中, 事件永远不会向div发起,因此它的click处理程序永远不会触发. 它有效地阻止父元素了解其子元素上的事件.

\n\n

相反,如果将上面的调用替换为 stopPropagation () 呼唤着 pr事件Default (),只有浏览器的默认操作会被排除,但是div的click处理程序仍然会被触发.

\n\n

(注:虽然 stopPropagation ()pr事件Default () 方法主要用于jQuery事件处理实现, 它们也适用于纯JavaScript.)

\n","identifier":3280074},{"questionBody":"

返回完成了什么 从(a) jQuery事件处理程序, (b)锚标记的常规JavaScript onclick事件处理程序, (c)非锚标记的常规JavaScript onclick事件处理程序.g., div,按钮等.)?

\n","answerBody":"

(a)从jQuery事件处理程序返回假实际上与调用相同 这两个 pr事件Default () stopPropagation () 在传递的jQuery事件对象上.

\n\n

(b)从锚标记的常规JavaScript onclick事件处理程序返回假会阻止浏览器导航到链接地址 阻止事件通过DOM传播.

\n\n

(c)从非锚标记的常规JavaScript onclick事件处理程序返回假.g., div,按钮等.)完全没有效果.

\n","identifier":3280075},{"questionBody":"

jQuery提供了一个有用的 .克隆() 方法创建匹配元素的深度副本.

\n\n

回答以下问题:

\n\n
    \n
  1. 什么是“深度复制”??
  2. \n
  3. 正常情况下是什么 包含在克隆副本中? 怎样才能控制这些行为呢?
  4. \n
  5. 在使用时,潜在的“陷阱”是什么 .克隆() 方法? (提示:您通常会使用的元素属性是什么 想要克隆吗?)
  6. \n
\n","answerBody":"
\n

1. 什么是“深度复制”??

\n
\n\n

.克隆() 方法执行匹配元素集的深度复制, 这意味着它复制匹配的元素 以及它们的后代元素和文本节点.

\n\n
\n

2. 正常情况下是什么 包含在克隆副本中? 怎样才能控制这些行为呢?

\n
\n\n

正常情况下:

\n\n
    \n
  • 元素数据中的对象和数组不会被复制,并将继续在克隆元素和原始元素之间共享. 要深度复制所有数据,必须“手动”复制每一个数据。.
  • \n
  • 绑定到原始元素的任何事件处理程序都不会复制到克隆元素.
  • \n
\n\n

设置可选的 与DataAndEvents 参数 真正的 生成所有事件处理程序的副本,并将其绑定到元素的新副本.

\n\n

从jQuery 1开始.4、所有元素数据(附) .数据() 方法)也被复制到新的副本.

\n\n

从jQuery 1开始.5, 与DataAndEvents 可以选择性地增强 deepWithDataAndEvents 复制克隆元素的所有子元素的事件和数据.

\n\n
\n

3. 在使用时,潜在的“陷阱”是什么 克隆() 方法? (提示:您通常会使用的元素属性是什么 想要克隆吗?)

\n
\n\n

使用 .克隆() 产生重复元素是否有潜在的副作用 id 属性,它们应该是唯一的. 因此,克隆带有。的元素时 id 属性,重要的是要记住修改 id 在将克隆插入DOM之前.

\n","identifier":3280076},{"questionBody":"

解释 .承诺() 方法,包括如何以及为什么使用它.

\n\n

考虑下面的代码片段. 如果有5个

元素,开始和结束时间之间的差异将显示在页面上?

\n\n
函数getMinsSecs() {\n  var dt = new Date();\n  返回dt.getMinutes()+\":\"+dt.getSeconds ();\n}\n\n$( \"input\" ).on( \"click\", 函数() {\n  $( \"p\" ).append( \"Start time: \" + getMinsSecs() + \"
\" );\n $( \"div\" ).函数(I) {\n $(this).fdeout (1000 * (i * 2));\n });\n $( \"div\" ).承诺().完成(函数(){\n $( \"p\" ).append( \"End time: \" + getMinsSecs() + \"
\" );\n });\n});\n
\n","answerBody":"

.承诺() 方法返回一个动态生成的Promise,一旦将特定类型的所有操作绑定到集合,该Promise就会被解析, 是否排队, 已经结束.

\n\n

它接受两个可选参数:

\n\n
    \n
  • \n类型 -默认, 类型为“fx”, 这意味着当所选元素的所有动画完成时,返回的Promise将被解析.
  • \n
  • \n目标 —如果指定了目标对象, .承诺() 将附加到它,然后返回这个对象,而不是创建一个新的.
  • \n
\n\n

在提供的代码示例中, 显示的开始和结束时间之间的差异将为10秒. 这是因为 .承诺() 我会等待一切

动画(在这种情况下,所有 渐隐() 调用)完成,最后一个调用将在10秒内完成.e.(5 * 2秒).

\n","identifier":3280077},{"questionBody":"

什么是正确的方式在jQuery中删除一个元素从DOM之前,它的承诺是解决?

\n","answerBody":"

jQuery中返回的Promise被链接到 延迟的对象 存储在 .数据() 对于一个元素. 自 .remove () 方法将删除元素的数据以及元素本身, 它将阻止元素中任何未解决的promise解析.

\n\n

因此,如果需要在解析Promise之前从DOM中删除一个元素,使用 .分离() 取而代之的是 .removeData () 决议后.

\n","identifier":3280078},{"questionBody":"

解释两者之间的区别 .分离().remove () jQuery中的方法.

\n","answerBody":"

.分离().remove () 方法是一样的,除了 .分离() 保留与被删除元素和关联的所有jQuery数据 .remove () 不. .分离() 因此,当删除的元素可能需要在以后的时间重新插入到DOM中是有用的.

\n","identifier":3280079},{"questionBody":"

两者有什么区别 文档.准备好()窗口.onload ()?

\n","answerBody":"

文档.准备好() 事件发生时,所有HTML文档都已加载,但是 窗口.onload () 当所有内容(包括图像)已加载时发生. 所以一般来说 文档.准备好() 事件首先触发.

\n","identifier":3280080},{"questionBody":"

两者有什么区别 支持()attr ()?

\n","answerBody":"

这两个 支持()attr () 用于获取或设置元素属性的指定属性的值,但是 attr () 返回属性的默认值,而 支持() 返回当前值。.

\n","identifier":3280081}],"publicUrl":"http://1imq.1e1v.com/jquery/interview-questions","tabsSection":{"selectedTab":"client","items":[{"类型":"client","label":"我的招聘","activeIconUrl":"http://bs-uploads.toptal.io/blackfish-uploads/components/interview_questions_page/tabs_section/item/content/active_icon_file/active_icon/822463/ICON_TALENT__ACTIVE__2x-64d6654dfad0c04528a0525c494b144f.png","inactiveIconUrl":"http://bs-uploads.toptal.io/blackfish-uploads/components/interview_questions_page/tabs_section/item/content/inactive_icon_file/inactive_icon/822464/ICON_TALENT__NON_ACTIVE__2x-8710ec2d9e5d5ba4f8f684771a271d5b.png"},{"类型":"talent","label":"我在找工作","activeIconUrl":"http://bs-uploads.toptal.io/blackfish-uploads/components/interview_questions_page/tabs_section/item/content/active_icon_file/active_icon/822461/ICON_CLIENT__ACTIVE__2x-9b251ec42929b7b96f7e20473b501eae.png","inactiveIconUrl":"http://bs-uploads.toptal.io/blackfish-uploads/components/interview_questions_page/tabs_section/item/content/inactive_icon_file/inactive_icon/822462/ICON_CLIENT__NON_ACTIVE__2x-de363650453eabe3d2c4e70e75deaaad.png"}]},"heroSection":{"title":"17个基本的jQuery面试问题","subtitle":"最好的jQuery开发人员和工程师可以回答的全部基本问题. Driven from our community, we encourage experts to submit questions 和 offer feedback.","cta":{"label":"Submit an Interview Question","href":"#submit-question"},"ctas":{"client":{"label":"现在就聘请一名顶级jQuery开发人员","href":"http://1imq.1e1v.com/hire?interested_in=developers&skill=jquery&skill_job_title=jQueryplusDeveloper"},"talent":{"label":"申请成为jQuery开发人员","href":"http://1imq.1e1v.com/talent/apply?as=developers"}},"eatBadgeSection":{"iconUrl":"http://bs-uploads.toptal.io/blackfish-uploads/components/eat_badge_section/content/icon_file/icon/1240878/toptal_logo_white_mono-df3f70ab3f3d7bf2e75fbe7a95401562.svg","label":"是顶级自由软件开发人员的专属网络吗, 设计师, 金融专家, 产品经理, 和世界上的项目经理. 顶级公司雇佣Toptal自由职业者来完成他们最重要的项目."}},"featuredContributors":null,"questionsSection":{"does note":"面试不仅仅是棘手的技术问题, 所以这些只是作为一个指南. 并不是每一个值得雇佣的“A”候选人都能回答所有的问题, 回答所有问题也不能保证成为A级考生. 一天结束的时候, hiring remains an art, a science — 和 a lot of work.","banner":{"title":"申请加入Toptal的发展网络","subtitle":"并享受可靠、稳定、远程 自由jQuery开发人员 Jobs","cta":{"label":"申请成为自由职业者","href":"/talent/apply","gaCategory":"cta","gaEvent":"cta - interview_questions_block","gaLabel":"Apply to 自由jQuery开发人员 Jobs"}}},"authorSection":null,"successStorySection":null}> < /脚本