我的内部有一个div,它的智慧可以是图像的数量 我想要做的是,如果有任何img与alt =“”我想要将其更改为alt =“category” 我怎么能用jquery做到这一点。 目前我能够获得所有的img元素并尝试首先检查那里的值[如果有一个alt有价值我将不会触及它]但是不成功 我目前的代码是
var label = $("#viewCategoriesForBlog").find('img').attr('alt');
for(var i=0;i<label.length;i++){
alert( label[i].value);
}
答案 0 :(得分:1)
var label = $("#viewCategoriesForBlog").find('img').attr('alt');
// label will hold only the first alt value
必须像
var label = $("#viewCategoriesForBlog").find('img');
for(var i=0;i<label.length;i++){
alert( $(label[i]).attr('alt'));
}
答案 1 :(得分:1)
此操作将解决您的初始问题:
$('#viewCategoriesForBlog img[alt=""]').attr('alt', 'category');
答案 2 :(得分:1)
像这样:
$("#viewCategoriesForBlog img[alt=''], #viewCategoriesForBlog img:not([alt])")
.attr("alt", "Category");
选择者解释说:
#viewCategoriesForBlog img[alt=""]
返回包含alt=""
#viewCategoriesForBlog img:not([alt])
返回没有alt
属性答案 3 :(得分:0)
您需要遍历选择器中的元素。您不能在选择器中循环元素的属性。试试这个:
$("#viewCategoriesForBlog img").each(function(i, el) {
alert($(el).prop('alt'));
});
答案 4 :(得分:0)
尝试这样的事情
$("#viewCategoriesForBlog").find('img').each(function(){
if(this.alt.trim() == ''){
this.alt = 'category';
}
})
答案 5 :(得分:0)
这个小提琴警告所有空的alt标签: http://jsfiddle.net/4ZnJN/1/
$("img").each(function(){
var label = $(this).attr('alt');
if(label.length < 1){
alert(label);
}
});
可能希望将其缩小到您的特定结构而不是所有img标签
答案 6 :(得分:0)
我知道绝对无法访问,但在这里我只需要避免WCAG验证器突出显示没有替代文本的图像。
var images = document.querySelectorAll('img');
if(images) {
for (var i = images.length - 1; i >= 0; i--) {
var alt = images[i].getAttribute('alt');
if(!alt){
images[i].setAttribute('alt', 'no alt text');
}
}
}