何时使用 Vanilla JavaScript 与 jQuery?

2024-02-17

我注意到,在监视/尝试回答常见 jQuery 问题时,有一些使用 javascript 而不是 jQuery 的做法,实际上使您能够少写多做...同样的数量。并且还可能产生性能优势。

一个具体的例子

$(this) vs this

在引用被单击对象 id 的单击事件内

jQuery

$(this).attr("id");

JavaScript

this.id;

还有其他类似的常见做法吗?某些 Javascript 操作可以更轻松地完成,而无需将 jQuery 引入其中。或者说这是一个罕见的案例? (实际上需要更多代码的 jQuery“快捷方式”)

EDIT :虽然我很欣赏有关 jQuery 与普通 javascript 性能的答案,但实际上我正在寻找更多定量的答案。使用 jQuery 时,使用纯 javascript 而不是使用实际上会更好(可读性/紧凑性)的实例$()。除了我在原来的问题中给出的例子之外。


  • this.id(如你所知)
  • this.value(在大多数输入类型上。我知道的唯一问题是 IE 当<select>没有value其上设置的属性<option>元素,或 Safari 中的无线电输入。)
  • this.className获取或设置整个“类”属性
  • this.selectedIndex反对<select>获取选定的索引
  • this.options反对<select>得到一个列表<option>元素
  • this.text反对<option>获取其文本内容
  • this.rows反对<table>得到一个集合<tr>元素
  • this.cells反对<tr>获取其单元格(td 和 th)
  • this.parentNode获得直系父母
  • this.checked获取 a 的已检查状态checkbox 谢谢@蒂姆唐恩 https://stackoverflow.com/users/96100/tim-down
  • this.selected获取选定的状态option 谢谢@蒂姆唐恩 https://stackoverflow.com/users/96100/tim-down
  • this.disabled获取禁用状态input 谢谢@蒂姆唐恩 https://stackoverflow.com/users/96100/tim-down
  • this.readOnly获取只读状态input 谢谢@蒂姆唐恩 https://stackoverflow.com/users/96100/tim-down
  • this.href反对<a>元素来获取它的href
  • this.hostname反对<a>元素来获取它的域href
  • this.pathname反对<a>元素获取其路径href
  • this.search反对<a>元素来获取其查询字符串href
  • this.src针对一个有效的元素src

...我想你应该已经明白了。

有时性能至关重要。就像如果你在循环中多次执行某些操作,你可能想放弃 jQuery。

In general you can replace:

$(el).attr('someName');

with:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

何时使用 Vanilla JavaScript 与 jQuery? 的相关文章

随机推荐

  • PHPUnit 测试函数,具有通过引用传递的值和返回值

    大家好 我需要测试一段调用另一个类的函数的代码 我现在无法编辑 我只需要测试它 但问题是这个函数有一个通过引用传递的值和一个返回的值 所以我不知道如何模拟它 这是列类的功能 public function functionWithValue
  • 将 strstream 转换为 sstream 关​​于 c_str() 的冲突

    我有这样的代码块strstream 我把它转换为sstream如下 我不确定 但我认为printStream gt str 返回一个字符串对象 其中包含由指向的流缓冲区中的内容的副本 临时 printStream 然后你调用c str 并得
  • 阻止 Visual Studio 自动更改 IIS 虚拟目录的物理路径?

    我有一个 Visual Studio 解决方案 其中包含一个 Web 应用程序项目 以及其他一些项目 Visual Studio 典型 设置似乎坚持认为二进制文件的输出目录位于项目源目录的根目录中 特别是 每次打开Web应用程序项目时 Vi
  • iOS 10.1 启动应用程序时出现警告

    为什么应用程序收到此警报以及如何解决此问题 AppName 可能会减慢您的 iPhone 该应用程序的开发人员需要更新它以提高其兼容性 我已经浏览过这个链接 iOS 10 1 模拟器显示 应用程序可能会减慢您的 iPhone 速度 http
  • 获取使用 calc 等表达式的 CSS 变量的计算值

    在 JavaScript 中 您可以使用以下命令获取 CSS 变量的值getPropertyValue property https developer mozilla org en US docs Web API CSSStyleDecl
  • Sinatra/Rack 的一个非常简单的身份验证方案是什么

    我正忙于将一个非常小的 Web 应用程序从 ASP NET MVC 2 移植到 Ruby Sinatra 在 MVC 应用程序中 当根据数据库正确验证用户登录时 FormsAuthentication SetAuthCookie 用于设置持
  • 如何使用接口实现松耦合?

    我似乎不明白接口如何实现松耦合的概念 您可能会发现这个问题与其他问题重复 但我已经阅读了许多与该主题相关的答案 但没有找到令人满意的解释 下面是许多开发人员实现松散耦合的示例 interface shape public function
  • 如何禁用 Django allauth 中的中间注销页面

    How to disable the intermediate signout page from django allauth When the user clicks on the signout link on my site I w
  • 使用“copy”属性来维护不可变的 NSString

    我对 iOS 开发和 Objective C 编程非常陌生 我一直在应用程序开发库上做练习 这是我正在尝试理解的当前练习 3 测试如果您将可变字符串设置为该人的名字 然后在调用修改后的 sayHello 方法之前更改该字符串 会发生什么情况
  • SwiftUI 中联系人应用程序中的联系人列表

    您好 我正在尝试构建一个列出所有联系人的界面 就像Contacts and Phone应用程序具有相同的UI 到目前为止我所尝试的如下 基本上我尝试实施CNContactPickerViewController from ContactsU
  • 如何向 THREE.BufferGeometry 添加面?

    我以编程方式创建了一个简单的网格 var CreateSimpleMesh new function var xy maxX 7 maxY 10 river 0 5 0 4 1 3 2 2 3 2 4 1 5 1 6 0 grassGeom
  • 如何将当前git分支的名称放入shell脚本中的变量中? [复制]

    这个问题在这里已经有答案了 我是 shell 脚本新手 无法弄清楚这一点 如果您不熟悉 命令 gitbranch 返回类似的内容 develop master 其中星号标记当前签出的分支 当我在终端中运行以下命令时 git branch g
  • JavaFX 树视图不显示任何项目

    我尝试在我的 JavaFX 应用程序中实现 TreeView 但不幸的是没有显示任何项目 但我找不到问题 我搜索了一些例子并像他们一样做了 我将 TreeView 控件放入 SceneBuilder 中的 FXML 文件中 并选择生成的 C
  • Java:将(长)对象转换为双精度的多种方法

    我有一个Object obj我知道实际上是一个long 在一些数学代码中我需要它作为double 直接将其转换为双倍安全吗 double x double obj 或者我应该先将其转换为 long 然后再转换为 double double
  • 具有多行的 NSTextFieldCell

    我需要显示一个包含多行且每行格式不同的 NSTextFieldCell 像这样的事情 Line 1 Title2号线 描述 我对 NSTextFieldCell 进行了子类化 但我不知道如何继续使用它 有任何想法吗 首先 你不have子类化
  • 将连接限制为一行

    我有以下查询 SELECT sum select count as itemCount SalesOrderItems price as amount rma as creditType Clients company as client
  • C在short和int之间转换的规则是什么?

    当使用 C 在 Short 和 int 之间进行转换时 我感到很困惑 我假设short是16位 int是32位 我用下面的代码进行了测试 unsigned short a 0xFFFF signed short b 0xFFFF unsig
  • 在 Win32 C++ 中创建 GUI

    我正在开发我的第一个 Windows 桌面应用程序 并且正在尝试找出创建该程序的 GUI 的最佳方法 我知道 我知道 考虑到有关该主题的数据量 我觉得问这个问题很愚蠢 然而 大多数答案似乎已经过时 我不确定它们是否适合我的特定项目 另外 W
  • 什么是测试中的软件故障? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在上软件测试的研究生课程 我们花了一整堂课来讨论故障 错误和故障之间的区别 我对测试中软件故障的定义不满意 你的定义是什么 您可能对此感兴趣
  • 何时使用 Vanilla JavaScript 与 jQuery?

    我注意到 在监视 尝试回答常见 jQuery 问题时 有一些使用 javascript 而不是 jQuery 的做法 实际上使您能够少写多做 同样的数量 并且还可能产生性能优势 一个具体的例子 this vs this 在引用被单击对象 i