如何通过Jquery数组为特定图像添加属性

时间:2018-07-06 15:30:40

标签: jquery html

我想通过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>

1 个答案:

答案 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数组的长度,这将中断。另外,正如其他人所提到的,除非图像的数量要改变,否则您实际上不需要循环。

简而言之,我绝不会将这样的代码放在生产环境中。相当脆弱。