Javascript 什么';当两者达到相同的目标时,编写此代码的首选方法是什么?

Javascript 什么';当两者达到相同的目标时,编写此代码的首选方法是什么?,javascript,jquery,Javascript,Jquery,我这里有一个函数,它循环两个包装器,然后循环它各自的子对象,并抛出一个数字,以数字顺序列出项目。我决定使用each jQuery函数,而不是使用for循环。我的问题是: 哪种方法更适合实现这一点,采用这种或那种方法的优点/缺点是什么??使用for循环是否更好 这: 或者这个: $(".articleContentWrapper").each( function () { var i = 1; $(this).find(".howToStepNumber").each(funct

我这里有一个函数,它循环两个包装器,然后循环它各自的子对象,并抛出一个数字,以数字顺序列出项目。我决定使用each jQuery函数,而不是使用for循环。我的问题是:

哪种方法更适合实现这一点,采用这种或那种方法的优点/缺点是什么??使用for循环是否更好

这:

或者这个:

$(".articleContentWrapper").each( function () { 
    var i = 1;
    $(this).find(".howToStepNumber").each(function () {
        $(this).html(i++);
    });
});
这个怎么样

$(".articleContentWrapper").each( function () { 
    $(this).find(".howToStepNumber").each(function (i, e) {
        $(this).html(i + 1);
    });
});
.each()
方法已经提供了一个索引保持器,因此您不需要自己创建一个。

这个方法怎么样

$(".articleContentWrapper").each( function () { 
    $(this).find(".howToStepNumber").each(function (i, e) {
        $(this).html(i + 1);
    });
});

.each()
方法已经提供了一个索引保持器,因此您不需要自己创建一个。

我可能会将其写成:

$(".articleContentWrapper").each( function () { 
    $(".howToStepNumber", this).each(function (i) {
        $(this).html(i);  // or i+1 depending on what you want
    });
});

这个发现其实也没有必要,而且会使陈述变得更长。

我可能会这样写:

$(".articleContentWrapper").each( function () { 
    $(".howToStepNumber", this).each(function (i) {
        $(this).html(i);  // or i+1 depending on what you want
    });
});
var wrapper = $(".articleContentWrapper");
$(".howToStepNumber", wrapper).text( function (i) { 
    return ( i % (wrapper.length + 1) ) + 1;
});​
这个发现其实也没有必要,而且会让陈述变得更长

var wrapper = $(".articleContentWrapper");
$(".howToStepNumber", wrapper).text( function (i) { 
    return ( i % (wrapper.length + 1) ) + 1;
});​

试试下面的方法

$(".howToStepNumber", $(".articleContentWrapper")).html( function () {
    return $(this).index() + 1;
});

试试下面的方法

$(".howToStepNumber", $(".articleContentWrapper")).html( function () {
    return $(this).index() + 1;
});

在OP code
i
中,从1开始:p传入
e
是什么。每个
表示什么?这是索引的DOM元素。因此,您还可以编写
$(e).html(i+1)
而不是
$(this).html(i+1)
@SethenMaleno我的印象是,最好不要尝试在
html
函数本身中传递需要递增的变量。相反,在OP code
i
中,从1开始递增:
中传递的
e
是什么?每个
表示什么?这是索引的DOM元素。因此,您还可以编写
$(e).html(i+1)
而不是
$(this).html(i+1)
@SethenMaleno我的印象是,最好不要尝试在
html
函数本身中传递需要递增的变量。更确切地说,是在之前增加$(本)html(b)。你只是在浪费内存。
varb=i++$(本)html(b)。你只是在浪费记忆。我真的很喜欢这个。一个很好的方法。我从未见过它像
$(“.howToStepNumber”,$(“.articleContentWrapper”)
那样编写。它是如何工作的?它相当于
$(“.articleContentWrapper”)。查找('.howToStepNumber')
@Vega感谢您的澄清。很有趣。我真的很喜欢这个。一个很好的方法。我从未见过它像
$(“.howToStepNumber”,$(“.articleContentWrapper”)
那样编写。它是如何工作的?它相当于
$(“.articleContentWrapper”)。查找('.howToStepNumber')
@Vega感谢您的澄清。非常有趣。