1

我想将具有 class 属性的第一个元素更改.viewer为其src属性的值data-src。明显的代码不起作用:

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

通过阅读有关 SO 的其他问题,我发现您必须这样做:

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

它确实有效,我也理解为什么(this不指代范围之外的元素) - 但是在你已经使用过之后.each运行它似乎很奇怪。.each().first()

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

4

2 回答 2

3

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

var viewer = $(".viewer").first().show();
viewer.attr('src', viewer.data('src'));
于 2013-03-02T00:15:57.977 回答
2

你总是可以只使用一个变量:

var elem = $(".viewer").first();
    elem.show().attr('src', elem.attr('data-src'));
于 2013-03-02T00:16:11.713 回答