[英]Running a function after another function with loops & promises in jQuery/JavaScript
[英]jQuery for loops not running function
我正在尝试在jQuery中创建一个循环,以根据元素的'caption'属性的值查找所有'img'元素并将标题放在其下方。 每当我在下面的循环中运行时,任何图像下都没有标题。
for (var i = 0; i < $('.myimage').length; i++) {
$('.myimage')[i].after('<h6>' + $('.myimage').attr('caption') + '</h6>');
};
但是,当我运行这段代码时
$('.myimage').after('<h6>TEST</h6>');
“ TEST”一词出现在所有图像下方。 因此,我知道我的html是正确的,我没有错别字,并且选择器正在运行,我只是无法使for循环正常工作...我做错了什么?
$('.myimage')[i]
返回DOM元素(不是jQuery对象),因此没有after
方法。 如果要循环,只需使用.each
$(".myimage").each(function() {
//this refers to each image
$(this).after('<h6>' + $(this).attr('caption') + '</h6>');
});
您可以使用.after()
的回调函数.myimage
这样的.myimage
元素
$('.myimage').after(function(){
return '<h6>' + $(this).attr('caption') + '</h6>';
});
一个小注意事项,不要组成您自己的属性。 请改用自定义数据属性,例如data-caption="something"
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.