在`.each()`范围之外使用jQuery` .attr()` - 可能吗?

时间:2013-03-02 00:12:45

标签: javascript jquery html

我想将类.viewer的{​​{1}}属性的第一个元素更改为它的src属性的值。明显的代码不起作用:

data-src

从SO上阅读其他问题,我发现你必须这样做:

$(".viewer").first().show().attr('src', $(this).attr('data-src'));

它确实有效,我确实理解为什么($(".viewer").first().show().each(function(){ $(this).attr('src', $(this).attr('data-src')); }); 没有引用this范围之外的元素 - 但运行.each似乎很奇怪在您使用.each()之后。

是否有更简洁的方法来编写上述代码?

2 个答案:

答案 0 :(得分:3)

将要重复使用的数据存储在变量中。

var viewer = $(".viewer").first().show();
viewer.attr('src', viewer.data('src'));

答案 1 :(得分:2)

您可以随时使用变量:

var elem = $(".viewer").first();
    elem.show().attr('src', elem.attr('data-src'));