【发布时间】:2015-10-26 14:20:05
【问题描述】:
我读到,为了提高 jquery 的性能应该避免使用,因为有些事情会变慢一点。
其中包括 each() 方法,并且使用 for 循环是合适的......(根据我阅读的网络文章,方法 each() 大约是 for 循环 javascript 的 10 倍)..
我正在尝试使用js但是我有一些问题:/
jQuery
$('#block-system-main-menu li').each(function () {
var text= ($(this).children('a').text());
if (text == 'Map' || text== 'Vul' || text== 'Equa'){
$(this).children('a').append('<span style="float:right; margin-right: 15%; line-height: inherit;" class="fa fa-chevron-right"></span>');
}
});
Javascript
var voce= $('#block-system-main-menu li');
for(var i=0; i< voce.length; i++) {
var text= (voce[i].children('a').text());
if (text == 'Map' || text== 'Vul' || text== 'Equa'){
voce[i].children('a').append('<span style="float:right; margin-right: 15%; line-height: inherit;" class="fa fa-chevron-right"></span>');
}
}
但循环不起作用,我不明白为什么....
谢谢!
【问题讨论】:
-
在阅读这样的内容时,请记住,速度是非常快的内容的 10 倍,但仍然比其他可能会减慢页面速度的内容快得多。如果循环中的
append比仅执行.each慢得多,我不会感到惊讶。 -
but the loop does not work它有什么作用?它是如何“不工作”的?它会给你错误吗?它什么都不做吗?它做的事情是否超出了您的预期? -
过去有人问过这个问题。查看stackoverflow.com/questions/11887450/…
-
在for循环示例中
voce[i].children('a')应该抛出一个错误,因为节点没有cildren()方法:jsfiddle.net/pap5nxp7Uncaught TypeError: voce[0].children is not a function。 -
第一种方法是 Jquery,第二种方法是 Javascript。 jQuery 是一个 Javascript 库。你不能只是假设,因为 jquery 实现了 javascript 也会做同样的事情。
标签: javascript jquery performance