jquery - 获取元素的出现

时间:2011-03-09 13:48:11

标签: javascript jquery

我有一个包含5张图片的div。

我想在每次出现的img

时写一个p标签
$("#myDiv img").each( function() {
    $("p").append($(this).length);
});

以上回报:

11111

我想要回归的是:

12345

6 个答案:

答案 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。