javascript - 当您想要搜索具有特定值的多个 HtmlObject 时,哪种 JavaScript 代码更有效?

标签 javascript jquery performance

我尝试找出哪种 JavaScript 代码更高效,例如当我搜索多个 JavaScript 跨度时。

使用jquery的这种模式:

$('span[value='+value+']')

或者使用标准 javascript 的这种模式:

function gEBI(id) {
    return document.getElementById(id);
}
var spans = gEBI("content").getElementsByTagName('span'); 
for (i = 0; i < this.spans.length; i++)
 { 
     if (this.spans[i].getAttribute("value") == valueThis ) { // operations } 
 }

还有一个问题,搜索通常是 jquery 或标准 JavaScript 更高效

最佳答案

在现代浏览器(IE8 及更高版本)中,jQuery 将比手动搜索 DOM 快得多。

现代浏览器支持 querySelectorquerySelectorAll,它们允许使用 CSS 查询来查找节点,并且比旧的 DOM 方法快得多。 jQuery 使用这些可用的功能,因此它可以从速度提升中受益。

但是,如果您确实追求速度,不需要古老的浏览器支持,并且仅使用基本的 CSS2.1 级别查询(例如您那里的查询),请直接使用 querySelector。这将比 jQuery 更快:

// If you only need just one
var span = document.querySelector('span[value='+value+']');
// If there's more than one span like that
var spans = document.querySelectorAll('span[value='+value+']');

http://caniuse.com/#search=querySelector

关于javascript - 当您想要搜索具有特定值的多个 HtmlObject 时,哪种 JavaScript 代码更有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14163887/

相关文章:

javascript - 推荐一个好的javascript统计资料库?

javascript - 我想要替换 JSON 中的对象数量 第 7 个对象数量 我该如何替换?

jQuery datepicker 插件在 Chrome 和 Safari 中不起作用

javascript - 使用 PHP 和 JS 从 URL 解析 JSON

c++ - 调用 exe 性能成本(与 DLL 相比)

c++ - 继承真的不影响性能吗?

wpf - 如何提高 wpf 用户控制性能?

javascript - 在 AngularJS ng-repeat div 中使用 href

javascript - 将 ng-options 与嵌套数组一起使用

javascript - 带有 jQ​​uery 自动完成功能的 select 标签中的 onchange