我有一个包含5张图片的div。
我想在每次出现的img
时写一个p标签$("#myDiv img").each( function() {
$("p").append($(this).length);
});
以上回报:
11111
我想要回归的是:
12345
答案 0 :(得分:8)
根据jQuery API documentation,您可以将索引作为函数的第一个参数传递。因此:
$("#myDiv img").each( function(i) {
$("p").append(i+1);
});
答案 1 :(得分:3)
我不确定如果我说得对,但是在调用.index()
以获得兄弟姐妹中的索引时,应该得到理想的结果:
$("#myDiv img").each( function() {
$("p").append($(this).index()+1);
});
由于索引从零开始,我在这里将这些值递增一。
可能更好的方法是使用索引,它被传递到.each()
的回调方法。
$("#myDiv img").each(function(index) {
$("p").append(index + 1);
});
答案 2 :(得分:0)
您正在循环遍历#myDiv元素中的每个图像,然后回显当前元素的长度 - 始终为1。
var i = 1;
$("#myDiv img").each( function() {
$("p").append(i);
i++;
});
递增计数器变量的经典示例。
答案 3 :(得分:0)
为什么不这样做?
var no = 1;
$("#myDiv img").each( function() {
$("p").append(no);
no++;
});
答案 4 :(得分:0)
你必须使用像这样的全局变量:
var cnt = 0;
$("#myDiv img").each( function() {
$("p").append(++cnt);
});
这应该有用。
答案 5 :(得分:0)
怎么样:
var index = 0;
$("#myDiv img").each( function() {
$("p").append(++index);
});
当调用每个()时,您总是从5中访问一个元素,所以总是得到长度为1。