【问题标题】:JS selector combined with jqueryJS选择器结合jquery
【发布时间】:2017-12-13 00:15:20
【问题描述】:

我想知道是否有一种方法可以将 JS 选择器与 jQuery 函数方法结合起来:

document.getElementsByClassName("example").on("click", function() {
  ...
});

【问题讨论】:

  • @31piy 我不认为这是一个很好的重复,因为赞成的答案没有提到任何关于返回元素 lists 的 DOM API。
  • 同意@Pointy - 微妙但所有代码都是这样,这专门解决了这个问题。投票决定重新开放。
  • 只是为了保持可见性是另一个问题stackoverflow.com/q/625936/125981
  • "如果浏览器支持,jQuery 会使用 JavaScript 的原生 getElementsByClassName() 函数。" api.jquery.com/class-selector 以及在哪里发挥作用 api.jquery.com/jquery/#jQuery-elementArray

标签: javascript jquery


【解决方案1】:

您可以将节点列表传递给 jQuery 构造函数:

$(document.getElementsByClassName("example")).on("click", function() {
  // ...
});

我不确定当节点列表传递给构造函数时 jQuery 识别了多长时间,但它现在似乎可以工作了。

【讨论】:

  • 哇,谢谢!但这会比通常的 jquery 选择器有性能优势吗?因为这实际上是我想使用 JS 的原因(看到很多关于 jquery 对性能的不良影响等的评论)
  • @hadakasir 最新的 jQuery 版本在可能的情况下使用原生浏览器 API 做得很好,但性能损失很小。就我个人而言,我几乎只使用 jQuery,现代浏览器环境的性能非常好,我从来没有遇到过性能问题。
  • 在这里同意 Pointy,$('.example').on 可能会更好。
  • @MarkSchultheiss 你是什么意思?我认为 Pointy 所说的性能损失是关于使用 jQuery,而不是其他。或者也许使用 JS 作为 jquery 内部的选择器确实比使用 jquery 的选择器更糟糕? :|
  • @hadakasir 肯定会受到惩罚,但对于大多数代码来说,它是如此之小,这并不重要。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 2015-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多