首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Javascript -从DOM集合排序中获得的好处

Javascript -从DOM集合排序中获得的好处
EN

Stack Overflow用户
提问于 2012-05-21 07:15:47
回答 1查看 107关注 0票数 2

我正在从事我的个人项目,即创建一个javascript选择器引擎。引擎将使用CSS2 - CSS3语法来选择元素节点。我是比较我的引擎的选择结果与其他选择引擎的结果(主要是Sizzle)。我还将其与称为querySelectorAll (QSA)的本机选择器方法进行了比较。我注意到一个不同之处。

文档的HTML结构非常简单:

<code><span></span></code>

我使用的选择器是:

'span,代码‘

当我使用Sizzle或QSA执行选择时,我得到的结果是:

[<code>...</code>, <span></span>]

当我使用选择器引擎时,结果是:

[<span></span>, <code>...</code>]

看起来,Sizzle和QSA根据元素在文档中的位置对集合进行排序。我的选择引擎不这样做。我发现,排序可以使用compareDocumentPosition和数组排序方法来实现。显然,这会对性能产生一定的影响,尽管我还没有测试它。(来源:http://ejohn.org/blog/comparing-document-position/)

我想知道排序节点是否比“未排序”节点提供了一些好处。例如,当元素被排序时,将css样式添加到集合的节点(在循环中,即)会更有效吗?在其他情况下,使用排序集合可能更好吗?

示例(elementNodes包含选择结果):

for (var i= 0,il = elementNodes.length;i< il;i++) {

elementNodesi.style.height =‘100 red’;elementNodesi.style.width =‘100 red’;elementNodesi.style.background = 'red';

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-21 08:29:24

首先,我喜欢您在这里所做的工作,特别是您正在与其他开源引擎进行比较。

实际上,这两个例子都是“排序”不同的。

除非你找到一个令人信服的理由(我想不出一个),你的排序方式和你的热情一样,那就不要这么做。只要你明白你自己的引擎的顺序,这一点你很清楚,其他人也能理解,那么这才是最重要的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10687973

复制
相关文章
JavaScript HTML DOM 集合(Collection)
getElementsByTagName() 方法返回 HTMLCollection 对象。
陈不成i
2021/07/20
5220
JQuery中的Dom操作集合
RT 时至今日,JQuery已经落伍了,已经快要被各种mvvm框架取代(其中著名的莫过于vue,angular,react)。但是我们很多编码过程中,如果没使用mvvm或者不适应mvvm的人,那么就属JQuery使用的最广泛了。
用户2353021
2020/05/12
5730
JavaScript 中 的 DOM 和 BOM
1.ECMAScript 为 JavaScript 提供核心语言功能,是由欧洲计算机制造商协会(ECMA)39号技术委员会(TC39)制定的一种通用、跨平台、供应商中立的脚本语言和语义。ECMAScript 是一种由 ECMA 组织通过 ECMA-262 标准化的脚本程序设计语言。ECMA-262 标准没有参考 Web 浏览器,它规定了语言的语法、类型、语句、关键字、保留字、操作符、对象。
李振
2021/11/26
4730
JavaScript中的Dom和Bom
当创建好一个页面并加载到浏览器时,DOM就悄然而生,它会把网页文档转换为一个文档对象,主要功能是处理网页内容。
用户7293182
2022/01/20
9230
JavaScript中的Dom和Bom
java中 数组排序,集合排序
第一种 就是重写方法我 觉得这种太蠢了!不描述 百度搜索sort()降序会出来一大堆。
斯文的程序
2019/11/07
1.4K0
java中 数组排序,集合排序
Java中的DOM和Javascript技术
DOM是一门技术,是文档对象模型.所需的文档只有标记型文档,如我们所学的html文档(文档中的所有标签都封装成为对象了)
达达前端
2022/04/29
6620
Java中的DOM和Javascript技术
JavaScript中的排序算法
1. 冒泡排序 2. 插入排序 3. 快速排序
越陌度阡
2020/11/26
7500
Javascript中DOM技术的的简单学习
别先生
2017/12/29
1.1K0
Javascript中DOM技术的的简单学习
JavaScript中DOM查询封装函数
在JavaScript中可以通过BOM查询html文档中的元素,也就是所谓的在html中获取对象然后对它添加一个函数。
马克社区
2022/04/14
6310
siblings() 获得匹配集合中每个元素的同胞
如果给定一个表示 DOM 元素集合的 jQuery 对象,.siblings() 方法允许我们在 DOM 树中搜索这些元素的同胞元素,并用匹配元素构造一个新的 jQuery 对象。
全栈程序员站长
2021/10/20
1.4K0
Java集合中对象排序
集合中的对象排序需求还是比較常见的。当然我们能够重写equals方法,循环比較;同一时候Java为我们提供了更易使用的APIs。当须要排序的集合或数组不是单纯的数字型时,通常能够使用Comparator或Comparable。以简单的方式实现对象排序或自己定义排序。
全栈程序员站长
2022/07/08
7780
JavaScript DOM
JavaScript DOM 是指 JavaScript 中的文档对象模型(Document Object Model);它允许 JavaScript 与 HTML 页面交互,使开发者可以通过编程方式动态地修改网页内容和样式,以及响应用户的交互。
久绊A
2023/03/25
6360
Javascript的DOM操作
1.訪问节点 document.getElementById(id); 返回对拥有指定id的第一个对象进行訪问
全栈程序员站长
2021/11/18
6750
JavaScript从初级往高级走系列————Virtual Dom
看图,只有修改了的数据才进行了刷新,减少了DOM操作,这其实就是vnode与newVnode对比,找出改变了的地方,然后只重新渲染改变的
FinGet
2019/06/28
4600
JavaScript中的常见的排序算法
1. 冒泡排序 // 冒泡排序 function bubbleSort(arr){ // 外层循环控制轮数r for(var r=1;r<arr.length;r++){ // 内层循控制下标i for(var i=0;i<arr.length-r;i++){ // 如果i的值大于i+1的值 if(arr[i]>arr[i+1]){ arr[i]^=arr[i+1];
越陌度阡
2022/11/27
3370
Javascript DOM(一)
预解析:js 引擎会把 js 里面所有的 var 和 function 提升到当前作用域的最前面
赤蓝紫
2023/01/01
1.2K0
Javascript DOM(一)
JavaScript HTML DOM
当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。
陈不成i
2021/07/19
7300
前端 javascript DOM
根据class选择:document.getElementsByClassName("c1"); a[0].style.color="red";
week
2018/08/24
3120
JavaScript DOM基础
DOM(Document Object Model)即文档对象模型,针对HTML和XML文档的API(应用程序接口)。 一.DOM介绍 DOM中的三个字母,D(文档)可以理解为整个Web加载的网页文档;O(对象)可以理解为类似window对象之类的东西,可以调用属性和方法,这里我们说的是document对象;M(模型)可以理解为网页文档的树型结构。 DOM有三个等级,分别是DOM1、DOM2、DOM3,并且DOM1在1998年10月成为W3C标准。DOM1所支持的浏览器包括IE6+、Firefox、Safa
汤高
2018/01/11
1.4K0
JavaScript之DOM
一、什么是DOM? DOM (Document Object Model)是指文档对象模型,通过它,可以访问HTML文档的所有元素。 DOM(Document Object Model)是一套
人生不如戏
2018/04/10
1.5K0
JavaScript之DOM

相似问题

JavaScript排序DOM

32

javascript排序DOM元素

22

jquery可排序javascript DOM

31

子附加/ DOM排序JavaScript

20

JavaScript的排序(有序)集合

216
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文