为什么JavaScript for循环递增?

时间:2014-06-26 02:05:42

标签: javascript jquery html

我正在尝试将<li>替换为1. 2. 3.分别。我设法将<li>更改为数字,但该数字为0。循环不想工作。说实话,这种方法可能是不可能的。

如果您愿意,请查看Fiddle

这是我的function(){...}

function doIt(){

        var input = document.getElementById("input");
        var li = /<li>/; // match opening li
        var liB = /<\/li>/; // match closing li
        var numberOfItems = input.value.match(li).length; // number of lis that occur


        for(var i = 0; i < numberOfItems; i++) {
            insertNumber(i); // execute insertNumber function w/ parameter of incremented i 
        }

        function insertNumber(number){
            input.value = input.value.replace(li, number + "." + " ").replace(liB, "");
        }


    }

我理解insertNumber(){...}函数不是

1 个答案:

答案 0 :(得分:1)

Here's an alternative method,将您的HTML textarea内容转换为jQuery可以操作和管理它们的DOM元素:

function doIt() {
    var $domElements = $.parseHTML( $('#input').val().trim() ),
        output = [],
        i = 1;
    $.each($domElements, function(index, element) {
        if($(this).text().trim() != '') {
            output.push( i + '. ' + $(this).text().trim() );
            i++;
        }
    });
    $('#input').val(output.join('\n'));
}