【发布时间】:2015-03-13 10:34:03
【问题描述】:
我有数据 Json。我在ajax中反序列化。 如果它具有“已预订”类,我想从元素中更改该类。这样写效率高吗?
$.ajax({
url: "URL.aspx/GetData",
type: "GET",
contentType: "application/json; charset=utf-8",
success: function (response) {
var arr = JSON.parse(response.d);
objData = new Array();
objData = arr;
for (i = 0; i < objData.length; i++) {
if (jQuery('#' + objData[i].noSeat).hasClass('seat-booked'))
{
jQuery('#' + objData[i].noSeat).addClass('seat-availiable');
jQuery('#class-' + objData[i].noSeat).attr('value', 'seat-availiable');
jQuery('#' + objData[i].noSeat).removeClass('seat-booked');
jQuery('#' + objData[i].noSeat).removeClass('selected');
}
}
我放了
if
声明中
for
循环。我想让它更快地处理。这是最好的方法吗?
【问题讨论】:
-
优化的第一点是将
jQuery('#' + objData[i].noSeat)放入一个变量中。 -
我想它会和我的方式一样。它只是缩短代码而不是过程
-
这样可以节省您每次执行
jQuery('#' + objData[i].noSeat)时jQuery搜索元素所花费的时间。 -
您可能还想链接它们 - .addClass().removeClass() - 如果您已经在使用变量,则不会提高性能。也最好做一个 removeClass('seat-booked selected')
-
这个问题属于Code Review,因为没有具体问题。
标签: jquery arrays ajax for-loop conditional-statements