如何使用jQuery多次更改图像的alt属性?

Mar*_*ark 2 jquery accessibility image alt-attribute

这个问题完成了我在这里的第一个关于如何使用jQuery更改点击图像的问题.

我忘了说(即使我后来编辑了我的帖子)我正在寻找一种方法,每次通过点击更改图像时都有不同的alt属性.

(这是为了更好的可访问性和SEO优化.)

以下是感谢altCognito的实际html代码:

<img id="radio_btn1" src="originalimage1.jpg" />
<br />
  <input type="radio" name="radio_btn1" value='image1.jpg' />
  <input type="radio" name="radio_btn1" value='image2.gif' />
  <input type="radio" name="radio_btn1" value='image3.png' />
  <input type="radio" name="radio_btn1" value='image4.jpeg' />
Run Code Online (Sandbox Code Playgroud)

和jquery:

imgFldr = 'images/nameofthesubfolder/';
$("input[type='radio']").click(function() {
   $('#'+this.name).attr('src', imgFldr+this.value).attr('alt', 'newattribute');
});
Run Code Online (Sandbox Code Playgroud)

它可以在jsbin上编辑.

Tom*_*röm 6

嗯...由Javascript操纵的SEO和内容不应该在同一篇文章中开头.无论你做什么,如果你使用Javascript来显示你的内容,你就会损害你的搜索引擎可见性.

也就是说,您可以将这些图像放在hasharray(imagename-> alt)中并从那里获取alt,或者您可以将alt放在连接到文件名的无线电值中,并使用分隔符.然后在用于显示图像的函数中解析它们.

......所以简而言之:

<img id="radio_btn1" src="originalimage1.jpg" />
<br />
  <input type="radio" name="radio_btn1" value='image1.jpg|Image 1' />
  <input type="radio" name="radio_btn1" value='image2.gif|Image 2' />
  <input type="radio" name="radio_btn1" value='image3.png|Image 3' />
  <input type="radio" name="radio_btn1" value='image4.jpeg|Image 4' />
Run Code Online (Sandbox Code Playgroud)

+

imgFldr = 'images/nameofthesubfolder/';
$("input[type='radio']").click(function() {
   var strarr = this.value.split('|');
   if(strarr.length < 2) return;
   $('#'+this.name).attr('src', imgFldr+strarr[0]).attr('alt', strarr[1]);
});
Run Code Online (Sandbox Code Playgroud)

...要么:

<img id="radio_btn1" src="originalimage1.jpg" />
<br />
<input type="radio" name="radio_btn1" value='image1.jpg' />
<input type="radio" name="radio_btn1" value='image2.gif' />
<input type="radio" name="radio_btn1" value='image3.png' />
<input type="radio" name="radio_btn1" value='image4.jpeg' />
Run Code Online (Sandbox Code Playgroud)

+

imgFldr = 'images/nameofthesubfolder/';
var imagesarr = {'image1.jpg': 'Image 1', 'image2.gif': 'Image 2','image3.png': 'Image 3','image4.jpeg': 'Image 4'}
$("input[type='radio']").click(function() {
   $('#'+this.name).attr('src', imgFldr+this.value).attr('alt', imagesarr[this.value]);
});
Run Code Online (Sandbox Code Playgroud)