我不確定我是否需要each()
函數,或者我可以用this
來做這件事。我試圖根據if
語句切換src屬性。它的工作原理除了將它們切換爲hifi1.jpg
。我該如何使它適用於每個img
的data-websrc
價值本身?每個,attr還是這個?
HTML:
<img class="airsrc" src="lofi1.jpg" data-websrc="hifi1.jpg" alt="example1">
<img class="airsrc" src="lofi2.jpg" data-websrc="hifi2.jpg" alt="example2">
JS:
jQuery(document).ready(function($) {
var airsrc = $('.airsrc');
airsrc.each(function() {
if (Modernizr.mq('(min-width:480px)')) {
var src = $(this).data('websrc');
airsrc.attr('src', src);
}
});
});
更新:解決方法:
jQuery(document).ready(function($) {
if (Modernizr.mq('(min-width:480px)')) {
$('.airsrc').each(function() {
var $this = $(this);
var src = $this.data('websrc');
if (src != '') {
$this.attr('src', src);
}
});
}
});
,在支持自定義數據屬性的瀏覽器,它從我的測試中,我已經工作發現意味着FF/Chrome/Opera/Safari。也許IE9。我認爲getAttribute可以用於(舊)IE。
爲什麼你認爲'$(本)。數據(「websrc」);'將返回值圖像的'data-websrc'屬性(無論如何這是一個無效的屬性,但這是另一回事)? –
'each','attr'和'this'是完全正交的。 –
代碼錯誤的原因是因爲您在each()循環中調用'airsrc.attr()'而不是'$(this).attr()',因此它將集合中所有內容的屬性設置爲與特定元素相反。 – Chris