为什么不是';循环递增的JavaScript?
我正在尝试将为什么不是';循环递增的JavaScript?,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试将替换为1。2.3.分别地我设法将更改为一个数字,但该数字是0。循环不想工作。老实说,这种方法可能是不可能的 如果您愿意,请看一看。 这是我的函数(){…}: function doIt(){ var input = document.getElementById("input"); var li = /<li>/; // match opening li var liB = /<\/li>/; // match
替换为1。2.3.分别地我设法将
更改为一个数字,但该数字是0
。循环不想工作。老实说,这种方法可能是不可能的
如果您愿意,请看一看。
这是我的函数(){…}
:
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, "");
}
}
函数doIt(){
var输入=document.getElementById(“输入”);
var li=////;//匹配开始li
var liB=//;//匹配结束li
var numberOfItems=input.value.match(li).length;//发生的lis数
对于(变量i=0;i
我知道insertNumber(){…}
函数不是必需的。将HTML文本区域内容转换为DOM元素,jQuery可以通过这种方式操作和管理它们:
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'));
}
numberOfItems
未定义。在第一个循环中,将所有
s(用0)替换。。。在你的第二场比赛中,没有什么可以取代的了。也许可以从正则表达式中删除gi
。就像@christian314159所说的,在第一次迭代之后,文本中不再有
。一些调试代码会向您显示它。请在这个问题中添加一个完整的代码示例,而不仅仅是链接。比较简单,.replace()
方法特别允许函数作为第二个参数。它的返回值变为替换值。顺便说一下,您也可以执行output.push(i++'..')
并删除多余的行,但这很难理解,因为它可以工作,谢谢!我真的很感谢你的帮助,我以后一定会再看。我想使用一种原始的JavaScript方法,因为我觉得在深入研究一种语言库之前,我应该对它有充分的理解。我要用@cookiemonster's。