【问题标题】:What is a selector engine?什么是选择器引擎?
【发布时间】:2010-09-06 18:50:12
【问题描述】:

我在很多地方看到过John Resig's fast new selector engine named Sizzle 的消息,但我不知道选择器引擎是什么,也没有任何文章解释它是什么。我知道 Resig 是 jQuery 的创造者,并且 Sizzle 是 Javascript 中的东西,但除此之外我不知道它是什么。那么,什么是选择器引擎?

谢谢!

【问题讨论】:

    标签: javascript jquery glossary resig


    【解决方案1】:

    选择器引擎用于根据某种查询(通常是 CSS 语法或类似语法)查询页面的 DOM 中的特定元素。

    例如,这个 jQuery:

    $('div')
    

    将搜索并返回页面上的所有

    元素。它使用 jQuery 的选择器引擎来做到这一点。

    优化选择器引擎是一件大事,因为您使用这些框架执行的几乎每个操作都基于某种 DOM 查询。

    【讨论】:

      【解决方案2】:

      选择器引擎是一个 JavaScript 库,它允许您使用某种字符串来选择 DOM 树中的元素以识别它们(想想 DOM 元素的正则表达式)。大多数选择器引擎使用 CSS3 选择器语法的一些变体,因此,例如,您可以编写如下内容:

      var paragraphs = selectorengine.select('p.firstParagraph')
      

      以firstParagraph类选择文档中的所有P元素。

      一些选择器引擎还支持 XPath 的部分实现,甚至支持一些自定义语法。例如,jQuery 让你编写:

      var checkedBoxes = jQuery('form#login input:checked')
      

      选中文档中登录表单中所有选中的复选框。

      【讨论】:

      • 我猜,您只需要在页面中包含“js”文件即可。您需要 JQuery 或其他库来使用它吗?
      【解决方案3】:

      选择器引擎是一种遍历 DOM 以查找特定元素的方法。

      一个内置选择器引擎的例子:

      var foo = document.getElementById('foo');
      

      【讨论】:

      • 感谢built-in selector engine 的好例子我读了一些答案,但仍然问自己,getElementById 是否是一个选择器引擎(看起来,但太明显了,所以没有人提到:D)跨度>
      【解决方案4】:

      此外,Sizzle 是 John Resig 目前正在开发的引擎,以取代 jQuery 已经很棒的选择器引擎。

      【讨论】:

        【解决方案5】:

        选择器引擎用于查找文档中的元素,其方式与 CSS 样式表相同。目前只有 Safari 有内置的 querySelectorAll 功能,可以做到这一点。对于其他浏览器,您必须使用外部 JavaScript 实现作为 LlamaLab Selector 或 Sizzle。

        【讨论】:

          猜你喜欢
          • 2014-03-06
          • 2010-12-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-03
          • 1970-01-01
          • 2012-07-05
          • 1970-01-01
          相关资源
          最近更新 更多