Javascript 添加列表项字母分隔符

Javascript 添加列表项字母分隔符,javascript,jquery,Javascript,Jquery,我有我'asc'的名字列表,我想添加一个字母,看起来像这样: <li><a href="#">Abram</a></li> <li><a href="#">Amanda</a></li> <li><a href="#">Bernard</a></li> <li><a href="#">Fox</a></li>

我有我
'asc'
的名字列表,我想添加一个字母,看起来像这样:

<li><a href="#">Abram</a></li>
<li><a href="#">Amanda</a></li>
<li><a href="#">Bernard</a></li>
<li><a href="#">Fox</a></li>
var currentLetter, prevLetter = null;
$("li").each(function() {
    currentLetter = $(this).find("a").text()[0];
    if (currentLetter != prevLetter) 
    {
        $("<div>").text(currentLetter).insertBefore($(this));
    }
    prevLetter = currentLetter;
});
  • A:
    
  • B:
  • F:

  • 有什么想法吗?

    因为您使用的是jquery,所以可以这样做:

    <li><a href="#">Abram</a></li>
    <li><a href="#">Amanda</a></li>
    <li><a href="#">Bernard</a></li>
    <li><a href="#">Fox</a></li>
    
    var currentLetter, prevLetter = null;
    $("li").each(function() {
        currentLetter = $(this).find("a").text()[0];
        if (currentLetter != prevLetter) 
        {
            $("<div>").text(currentLetter).insertBefore($(this));
        }
        prevLetter = currentLetter;
    });
    
    var currentLetter,prevLetter=null;
    $(“li”)。每个(函数(){
    currentLetter=$(this.find(“a”).text()[0];
    if(currentLetter!=prevLetter)
    {
    $(“”).text(currentLetter).insertBefore($(this));
    }
    prevLetter=currentLetter;
    });
    


    虽然从技术上讲,你不应该把
    div
    放在
    ul
    里面(即使它完全可以渲染)。我会在没有锚的情况下插入
    li
    来维护语义。

    是的,我有一些。但是你尝试过什么呢?假设这是用
    包装的,那是你想要的无效HTML-只有
    • 的有效子代。或者在每个li中插入ul,比如:
    • a:
      • 艾布拉姆
      • 阿曼达
            •