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