Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery-OL自动编号_Jquery - Fatal编程技术网

Jquery-OL自动编号

Jquery-OL自动编号,jquery,Jquery,我正在尝试使用JQuery创建自动编号OL列表。 我想创建这样的列表 苹果 1.1青苹果 1.2红苹果 1.3红苹果 橙色的 2.1橙汁 2.2等 请帮我创建这个 $('#content-main-text ol:first-child li').each(function(index) { $(this).html((index + 1) + '. ' + $(this).html()); }); 这段代码为我的列表中的所有LI添加了编号…我虽然很容易找到css属性来提

我正在尝试使用JQuery创建自动编号OL列表。 我想创建这样的列表

苹果

1.1青苹果

1.2红苹果

1.3红苹果

橙色的

2.1橙汁

2.2等

请帮我创建这个

   $('#content-main-text ol:first-child li').each(function(index) {
     $(this).html((index + 1) + '. ' + $(this).html());
   });

这段代码为我的列表中的所有LI添加了编号…

我虽然很容易找到css属性来提供您想要的功能,但我找不到任何内容。这是使用jQuery的方法,但它有一些问题:

function fn(li,parentPrefix) {
    $(li).children("li").each( function(index) {
        var i = index + 1;
        var myPrefix = parentPrefix ? parentPrefix + "." + i : i;
        $(this).html(myPrefix + " " + $(this).html());
        fn( $(this).children("ol"), myPrefix);
    });
}

var topmostOLs = $("ol").filter(function() { return !$(this).parent().is("li") } )
topmostOLs.each(function() {
    fn(this);
});
它查找所有最顶层的ol元素,并递归访问其子列表以添加编号

为了正确显示,您必须添加css ol{list style:none}以删除本机css编号

这样做的一个问题是,如果您标记列表并复制它,它将复制ol的添加编号和本机编号

这里有一个演示:按左上角的preview查看结果