Javascript 如何将适当的属性附加到一系列元素?
我有一段代码:Javascript 如何将适当的属性附加到一系列元素?,javascript,jquery,dom-manipulation,dom-traversal,Javascript,Jquery,Dom Manipulation,Dom Traversal,我有一段代码: if ($('.page-template-default .gallery img').attr('alt') !== undefined) { $('.page-template-default .gallery li').append("<small>" + $('.page .gallery img').attr('alt') + "</small>"); } if($('.page template default.gallery img
if ($('.page-template-default .gallery img').attr('alt') !== undefined) {
$('.page-template-default .gallery li').append("<small>" + $('.page .gallery img').attr('alt') + "</small>");
}
if($('.page template default.gallery img').attr('alt')!==未定义){
$('.page template default.gallery li').append(“+$('.page.gallery img').attr('alt')+”);
}
基本上,它会在图像本身旁边附加图像的alt文本
问题是,我有一个包含10个图像的页面,附加的alt文本总是相同的,取自第一个图像
有没有办法将每个alt文本返回到相应的图像 如果您想像这样使用每个
img
的属性,您需要遍历每个img
var $imgs = $('.page-template-default .gallery li > a > img');
$imgs.each(function() {
var $img = $(this);
if ($img.attr('alt') !== undefined) {
var $li = $img.parent().parent();
$li.append("<small>" + $img.attr('alt') + "</small>");
}
});
var$imgs=$('.page-template-default.gallery-li>a>img');
$imgs.每个(函数(){
var$img=$(本);
如果($img.attr('alt')!==未定义){
var$li=$img.parent().parent();
$li.append(“+$img.attr('alt')+”);
}
});
如果您想像这样使用每个img的属性,您需要遍历每个img
var $imgs = $('.page-template-default .gallery li > a > img');
$imgs.each(function() {
var $img = $(this);
if ($img.attr('alt') !== undefined) {
var $li = $img.parent().parent();
$li.append("<small>" + $img.attr('alt') + "</small>");
}
});
var$imgs=$('.page-template-default.gallery-li>a>img');
$imgs.每个(函数(){
var$img=$(本);
如果($img.attr('alt')!==未定义){
var$li=$img.parent().parent();
$li.append(“+$img.attr('alt')+”);
}
});
$('.page template default.gallery img')。每个(函数(i,it){
if($(this).attr('alt')!==未定义){
var li=$('.page-template-default.gallery-li').get(i);
$(li).append(“+$(this.attr('alt')+”);
}
});
$('.page template default.gallery img')。每个(函数(i,it){
if($(this).attr('alt')!==未定义){
var li=$('.page-template-default.gallery-li').get(i);
$(li).append(“+$(this.attr('alt')+”);
}
});
似乎是最简单的方法:
$('.page-template-default .gallery img').attr('alt', function (i, alt) {
if (typeof alt != 'undefined' && alt!='') {
$(this).closest('li').append(alt);
}
});
请稍作解释:
可以将函数用作其第二个参数。通常,它用于使用函数的返回值设置属性(这次是alt
)。在本例中,我不返回任何内容,只使用它循环指定图像的alt
属性
此
此处将指当前使用的img
将返回与选择器“li”匹配的图像的最近父级
这似乎是最简单的方法:
$('.page-template-default .gallery img').attr('alt', function (i, alt) {
if (typeof alt != 'undefined' && alt!='') {
$(this).closest('li').append(alt);
}
});
请稍作解释:
可以将函数用作其第二个参数。通常,它用于使用函数的返回值设置属性(这次是alt
)。在本例中,我不返回任何内容,只使用它循环指定图像的alt
属性
此
此处将指当前使用的img
将返回与选择器“li”匹配的图像的最近父级
var$imgs=$('.page-template-default.gallery-img');
$imgs.每个(功能$img){
如果($img.attr('alt')!==未定义){
$img.after(“+$img.attr('alt')+”);
}
});
var$imgs=$('.page-template-default.gallery-img');
$imgs.每个(功能$img){
如果($img.attr('alt')!==未定义){
$img.after(“+$img.attr('alt')+”);
}
});
图像和li
s之间的关系是什么?我们能看到你的标记吗?li
是容器。最后的HTML应该是这样的:标题
。图像和li
之间的关系是什么?我们能看到你的标记吗?li
是容器。最后的HTML应该是这样的:标题
。稍微调整一下,因为他想把它包装成一个
:@Nick谢谢,我忘了那部分。顺便说一句,我从你的小提琴中学到了一些新东西:)。稍微调整一下,因为他想把它用
包起来:@Nick谢谢,我忘了那部分。顺便说一句,我从你的小提琴中学到了一些新东西:)。