如何一次运行.attr()函数

时间:2015-09-03 17:37:13

标签: jquery

如何运行.attr()函数一次将所有属性的值对对象传递给函数?

$(function() {

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

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

        });

    });
});

1 个答案:

答案 0 :(得分:3)

您可以执行以下操作

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

修改

如果您要提取值,并且如果该值不存在,那么您可以执行类似以下操作

var attributes = {};
if(thumb.find('img').attr('src') !== undefined) {
    attributes.src = thumb.find('img').attr('src');
}
if(thumb.find('img').attr('alt') !== undefined) {
    attributes.alt = thumb.find('img').attr('alt');
}
if(thumb.find('img').attr('title') !== undefined) {
    attributes.title = thumb.find('img').attr('title');
}
$images.find('.selected').attr(attributes);