我正在构建一个响应站点,并且在一个特定页面上,我试图让移动设备(宽度为480或更小)不下载特定图像。我知道我很亲密,我会告诉你为什么在代码之后。使用jQuery循环访问img src属性
HTML:
<div class="index-section">
<p><img class="scale-with-grid" alt="" /></p>
<p><a href="#">A Letter from Person 1 <span class="triangle">▶</span></a></p>
</div>
<div class="index-section">
<p><img class="scale-with-grid" alt="" /></p>
<p><a href="">A Letter from Person 2 <span class="triangle">▶</span></a></p>
</div>
<div class="index-section">
<p><img class="scale-with-grid" alt="" /></p>
<p><a href="">A Letter from Person 3 <span class="triangle">▶</span></a></p>
</div>
<div class="index-section">
<p><img class="scale-with-grid" alt="" /></p>
<p><a href="">A Letter from Person 4 <span class="triangle">▶</span></a></p>
</div>
它基本上是4分几乎相同的div的。而这里的jQuery的:
$(document).ready(function() {
var imgPath = '_/img/'
var $winWidth = $(window).width();
var $indexSection = $('.index-section p img');
if ($winWidth <= 480) {
$indexSection.attr('src','');
$indexSection.css('display','none');
} else {
var imgSrc = [ "keith-index.jpg", "derek-video.jpg", "bar-chart.jpg", "honor-roll.jpg" ];
jQuery.each(imgSrc, function(value){
$indexSection.attr('src',imgPath + value);
});
}
});
我把这个头(jQuery库后),以便它增加了SRC作为它的渲染HTML。这适用于iPhone(或宽度小于480px的Firefox),并且不会加载图像,所以这很好。
问题是,当我试图循环显示图像时,它大概工作,因为Firefox的控制台告诉我它无法加载“http://myurl.com/_/img/” 0.jpg“,它告诉我它几乎正确连接,但是,出于某种原因,它打印的是数组的索引,而不是数值(我认为)。
我需要的是,如果浏览器比480宽,打印url为每个图像的src
属性(“myurl.com/_/img/keith-index.jpg”,其他三个他们各自的div),以便图像加载,例如桌面浏览器。
感谢您的任何帮助。
感谢您的回复。奇怪的行为。在Firefox中,我第一次在那里添加“index”,它为每个图像添加了数组中的最后一个值,甚至没有加载其他值(根据Firebug)。我刷新并加载其他图像,但继续显示阵列中所有图像的最后一幅图像。检查出来:http://nickcox.me/dev/annual-report/index.html – nickcoxdotme
我标记正确。谢谢你的帮助。 (我也很感谢你的解释,而不仅仅是回答!)但是,你能解释为什么'索引'工作吗?我以为我读错了,并把'价值',并且工作。我会希望'index'打印0,1,2,3和'value'给我的图像。该阵列的索引不是数字位置吗?为什么我不想要这些值? – nickcoxdotme