需要" DRY"我的代码

时间:2014-08-11 13:03:55

标签: javascript jquery html-lists dry

所以,我正在使用这个carousel插件生成内容,我只能与javascript或jQuery交互。

所以我的问题如下。在我的旋转木马下面是子弹,其中包含以下html:

<div id="bullets" class="jqarousel-ms-block">
    <ul>
        <li class="focus">0</li>
        <li class="focus">1</li>
        <li class="focus">2</li>
        <li class="focus">3</li>
    </ul>
</div>  

我需要定位这些li并将其中的数字增加1。 所以不是0,1,2,3我想要1,2,3,4。

我使用的代码是愚蠢的,因为它全部重复。

$("#bullets ul").children().eq(0).html(1);
$("#bullets ul").children().eq(2).html(2);
$("#bullets ul").children().eq(3).html(3);
$("#bullets ul").children().eq(4).html(4);

帮我干这个!

3 个答案:

答案 0 :(得分:3)

您可以将匿名函数传递给html(),您可以使用它来修改值。在您的情况下,将1添加到当前值。试试这个:

$("#bullets ul li").html(function(i, value) {
    return parseInt(value, 10) + 1;
});

Example fiddle

如果数字不是从1开始,或者步骤不是一个恒定的进展,这种方法有工作的好处。

答案 1 :(得分:0)

试试这个:

$('#bullets ul li').each(function (i, obj) {
    $(this).html(i + 1);
});

重新阅读并看到你想要里面的数字+ 1:

$(this).html(parseInt($(this).val(), 0) + 1);

答案 2 :(得分:0)

使用each来实现这一目标:

$("#bullets ul").children().each(function(i){
    $(this).html(i+1);
});

请在此处查看DEMO