Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery for循环未运行函数_Javascript_Jquery_Html_For Loop - Fatal编程技术网

Javascript jQuery for循环未运行函数

Javascript jQuery for循环未运行函数,javascript,jquery,html,for-loop,Javascript,Jquery,Html,For Loop,我试图在jQuery中创建一个循环,根据元素的“caption”属性的值查找所有的“img”元素并在它们下面放置一个标题。每当我运行下面的循环时,我在任何图像下都没有标题 for (var i = 0; i < $('.myimage').length; i++) { $('.myimage')[i].after('<h6>' + $('.myimage').attr('caption') + '</h6>'); }; for(var i=0;i

我试图在jQuery中创建一个循环,根据元素的“caption”属性的值查找所有的“img”元素并在它们下面放置一个标题。每当我运行下面的循环时,我在任何图像下都没有标题

for (var i = 0; i < $('.myimage').length; i++) {
    $('.myimage')[i].after('<h6>' + $('.myimage').attr('caption') + '</h6>');
};
for(var i=0;i<$('.myimage')。长度;i++){
$('.myimage')[i]。在('+$('.myimage').attr('caption')+''之后;
};
但是,当我运行此代码时

$('.myimage').after('<h6>TEST</h6>');
$('.myimage')。在('TEST')之后;
“测试”一词出现在所有图像下方。因此,我知道我的html是正确的,我没有打字错误,选择器正在工作,我只是无法让for循环工作。。。我做错了什么

$('.myimage')[i]
返回一个DOM元素(不是jQuery对象),因此在
方法之后没有
。如果要循环,只需使用
。每个

$(".myimage").each(function() {
    //this refers to each image
    $(this).after('<h6>' + $(this).attr('caption') + '</h6>');
});
$(“.myimage”)。每个(函数(){
//这是指每个图像
$(this).after(“”+$(this).attr('caption')+“”);
});
$('.myimage')[i]
返回一个DOM元素(不是jQuery对象),因此
方法之后没有
。如果要循环,只需使用
。每个

$(".myimage").each(function() {
    //this refers to each image
    $(this).after('<h6>' + $(this).attr('caption') + '</h6>');
});
$(“.myimage”)。每个(函数(){
//这是指每个图像
$(this).after(“”+$(this).attr('caption')+“”);
});

您可以使用
.after()
的回调函数,像这样遍历
.myimage
元素

$('.myimage').after(function(){
    return '<h6>' + $(this).attr('caption') + '</h6>';
});
$('.myimage')。在(函数()之后{
返回“”+$(this.attr('caption')+“”;
});
一个小提示,不要编造你自己的属性。改用自定义数据属性,如
data caption=“something”


您可以使用
.after()
的回调函数,像这样遍历
.myimage
元素

$('.myimage').after(function(){
    return '<h6>' + $(this).attr('caption') + '</h6>';
});
$('.myimage')。在(函数()之后{
返回“”+$(this.attr('caption')+“”;
});
一个小提示,不要编造你自己的属性。改用自定义数据属性,如
data caption=“something”


啊,谢谢你,这真是一次享受!我没有意识到$('.myimage')[I]会返回一个DOM对象:P@thatsimplekid--是的-您可能最终会看到类似于
$(“#myID”)[0]
的内容-这与
文档相同。getElementById(“myID”)
啊,谢谢,这很有效!我没有意识到$('.myimage')[I]会返回一个DOM对象:P@thatsimplekid--是的-您可能最终会看到类似于
$(“#myID”)[0]
的内容-这与
文档相同。getElementById(“myID”)