我想通过jquery数组为我的多个图像添加属性,但是它不起作用。请帮助我!
<div id="result">
<img src="Image1" width="300"/>
<img src="Image2" width="300"/>
<img src="Image3" width="300"/>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
var imagesArray=[];
$('#result img').each(function() {
imagesArray[1]=$(this).attr({alt: 'Beijing'});
imagesArray[2]=$(this).attr({alt: 'India'});
imagesArray[3]=$(this).attr({alt: 'USA'});
});
</script>
答案 0 :(得分:0)
所以我认为您要尝试通过编程方式将alt
文本分配给数组中每个图像 。
请记住,JavaScript中的数组基于0。您不想在这里以数字1开头。
这是您的代码外观:
var altTexts = ['Beijing', 'India', 'USA'];
var imagesArray = [];
$('#result img').each(function(index) { // add the index parameter provided by each
$(this).attr('alt', altTexts[index]); // assign the alt-text to the current images from the array
imagesArray.push(this); // add the image to the imagesArray
});
alert($(imagesArray[0]).attr('alt')); // Test: Beijing
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="result">
<img src="Image1" width="300"/>
<img src="Image2" width="300"/>
<img src="Image3" width="300"/>
</div>
请记住,如果找到的图像数量不等于altTexts
数组的长度,这将中断。另外,正如其他人所提到的,除非图像的数量要改变,否则您实际上不需要循环。
简而言之,我绝不会将这样的代码放在生产环境中。相当脆弱。