优化JQuery

时间:2015-09-03 14:54:35

标签: javascript jquery

我有Jquery代码,看起来像这样。有没有办法优化这段代码?如果图像没有标题属性会怎样?我应该插入一个案例以使用alt属性的值作为备份吗?如果我多次链接.attr()函数,那么它就是更干净的代码我刚刚运行了{{ 1}}函数一次将所有属性的值对对象传递给函数。我怎么能这样做?

.attr()

2 个答案:

答案 0 :(得分:1)

您是否考虑过var thumb = $(this).find("img")作为首发?在你的代码重复函数调用的任何地方,你可能做错了。

关于"如果没有属性",如果第一个没有"你可以使用逻辑或(thumb.attr('title') || thumb.attr('alt'))来提供||。存在。

根据documentation,你可以做......

$images.find('.selected').attr({
    src: thumb.attr('src'),
    alt: thumb.attr('alt'),
    title: thumb.attr('title') || thumb.attr('alt')
});

答案 1 :(得分:1)

您可以将属性存储在数组中,并缓存$thumb.find('img')选择器:

$('.component-individual-detail-profile').each(function() {
  var $self = $(this);
  var $images = $self.find('.photos');

  $images.find('li').click(function(e) {
    e.preventDefault();
    var $thumb = $(this).find('img');
    var $selected = $images.find('.selected');
    $.each(['src', 'alt', 'title'], function(index, attrName){
      $selected.attr(attrName, $thumb.attr(attrName));
    });
  });
});