Javascript 它';可以在HTML/jQuery中创建字母垂直边栏吗?

Javascript 它';可以在HTML/jQuery中创建字母垂直边栏吗?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一份“ul”名单。我想创建一个按字母顺序排列的垂直侧边栏,当我点击他的一封信时,以该信开头的li名字会被过滤掉 :这是手机用的,我需要它用于web应用程序 我没有找到任何插件或代码示例 更新:说明: 列表已排序。我只需要一个字母顺序的垂直侧边栏用于上下滚动列表 签出此插件它与您需要的非常相似 如果我在跟踪,您希望它筛选出与您按下的字母匹配的项目吗?如果是这样,以下几点应该会有所帮助: 输出标记时,包括: <li data-first-character="{strings-first-

我有一份“ul”名单。我想创建一个按字母顺序排列的垂直侧边栏,当我点击他的一封信时,以该信开头的li名字会被过滤掉

:这是手机用的,我需要它用于web应用程序

我没有找到任何插件或代码示例

更新:说明


列表已排序。我只需要一个字母顺序的垂直侧边栏用于上下滚动列表

签出此插件它与您需要的非常相似

如果我在跟踪,您希望它筛选出与您按下的字母匹配的项目吗?如果是这样,以下几点应该会有所帮助:

输出标记时,包括:

<li data-first-character="{strings-first-character}" ...>...</li>
<a data-character="{character}" href="#" ...>...</li>

下面是一支代码笔,它显示了这个过程:

您可以通过以下操作轻松实现这一点:

  • 遍历列表
  • 如果列表元素的第一个字符与前一个列表元素不同:
    • 向该列表元素添加唯一id
    • 添加指向字母索引的链接(指向唯一id)
实现此目的的简单代码:

$("ul li").each(function() {
    var current = $(this).text()[0];
    if (current != previous) { 
        $(this).attr("id", "first_letter_" + current);
        previous = current;
        $("#index").append("<a href='#first_letter_" + current + "'>" + current + "</a><br/>");
    }
});

莎士比亚角色列表:
  • 亚伦
  • 方丈
  • 憎恶
  • 亚伯拉罕
  • 阿基里斯
  • 亚当
  • 阿德里安
  • 阿德里亚娜
  • 伊迪尔
  • 爱琴
  • 埃米利亚
  • 埃米利厄斯
  • 埃涅阿斯
  • 阿伽门农
  • 阿格里帕
  • 阿贾克斯
  • 阿尔西比亚德斯
  • 亚历山大
  • 亚历山大·艾登
  • 亚历克斯
  • 爱丽丝
  • 全部
  • 全体公民
  • 所有同谋者
  • 女士们
  • 所有贵族
  • 所有仆人
  • 所有哥特人
  • 全体人民
  • 阿隆索
  • 大使
  • 亚眠
  • 安卓马赫
  • 安杰洛
  • 安格斯
  • 安妮·布伦
  • 安妮·佩奇
  • 另一个
  • 安提戈努斯
  • 安条克
  • 以弗所安提弗勒斯
  • 锡拉丘兹安提霍勒斯酒店
  • 安东尼奥
  • 安东尼
  • 猿猴
  • 药剂师
  • 克兰默大主教
  • 坎特伯雷大主教
  • 斯克罗普大主教
  • 阿奇达莫斯
  • 阿里尔
  • 中动脉
  • 亚瑟
  • 阿维拉格斯
  • 服务员
  • 服务员
  • 奥黛丽
  • 奥托吕科斯
  • 贝戈特
  • 巴尔塔萨
  • 巴尔塔扎尔
  • 班迪蒂
  • 班科
  • 巴普蒂斯塔米诺拉酒店
  • 巴多夫
  • 巴纳丁
  • 巴萨尼奥
  • 巴塞特
  • 球孢属
  • 奥尔良的混蛋
  • 贝茨
  • 百威
  • 比德尔
  • 比阿特丽斯
  • 贝拉里斯
  • 贝尼迪克
  • 本沃里奥
  • 贝尔纳多
  • 伯特伦
  • 比安卡
  • 比昂德罗
  • 比隆
  • 林肯主教
  • 卡莱尔主教
  • 伊利主教
  • 漂白
  • 钝的
  • 水手长
  • 博林布鲁克
  • 博纳
  • 博拉奇奥
  • 两者
  • 两位公民
  • 两个论坛
  • 底部
  • 博尔特
  • 男孩
  • 博伊特
  • 布拉班蒂奥
  • 布兰登
  • 兄弟
  • 布鲁特斯
  • 浓密的
  • 凯撒
  • Caithness
  • 凯乌斯卢修斯
  • 火山灰
  • 卡利班
  • 卡尔普尼亚
  • 卡米洛
  • 卡尼迪乌斯
  • 卡菲斯
  • 船长
  • 卡普修斯
  • 卡普莱特
  • 布奇红衣主教
  • 坎佩乌斯红衣主教
  • 潘杜尔夫红衣主教
  • 沃尔西红衣主教
  • 承运人
  • 卡斯卡
  • 卡桑德拉
  • 凯西奥
  • 卡修斯
  • 西莉亚
  • 谷神星
  • 月桂
  • 张伯伦
  • 查尔斯
  • 法国国王查尔斯
  • 查米安
  • 查蒂隆
  • 孩子们
  • 凯龙
  • 合唱
  • 克里斯托弗·斯莱
  • 克里斯托弗·厄斯威克
  • 西塞罗
  • 辛纳
  • 诗人辛娜
  • 市民
  • 市民
  • 克劳迪奥
  • 克劳迪斯
  • 克莱奥门尼斯
  • 克莱恩
  • 埃及艳后
  • 办事员
  • 查塔姆书记
  • 阴蒂
  • 凝块
  • 小丑
  • 蛛网
  • 科米纽斯
  • 公地
  • 战友
  • 法国警察
  • 康斯坦斯
  • 科迪利亚
  • 科林
  • 科里奥拉努斯
  • 科尼利厄斯
  • 科斯塔德
  • 伯爵夫人
  • 奥弗涅伯爵夫人
  • 法庭
  • 柯特赞
  • 克雷西达
  • 叫喊者
  • 克伦威尔
  • 丘比特
  • 库兰
  • 古玩
  • 柯蒂斯
  • 辛贝林
  • 舞者
  • 达达尼乌斯
  • 安条克之女
  • 戴维
  • 布鲁特斯
  • 反恐
  • 德米特里厄斯
  • 丹尼斯
  • 德西塔斯
  • 苔丝狄蒙娜
  • 戴安娜
  • 屠夫迪克
  • 狄俄墨德
  • 迪翁
  • 迪奥尼扎
  • 医生
  • 巴特斯博士
  • 凯厄斯医生
  • 山茱萸
  • 多拉贝拉
  • 洋娃娃泪膜
  • 伊诺巴罗斯多米提乌斯酒店
  • 阿德里亚诺·德·阿马多阁下
  • 约翰老头子
  • 唐·佩德罗
  • 多纳尔本
  • 多卡斯
  • 以弗所德罗米奥
  • 锡拉丘兹德罗米奥酒店
  • 格洛斯特公爵夫人
  • 约克公爵夫人
  • 公爵
  • 奥尔巴尼公爵
  • 阿伦孔公爵
  • 奥默尔公爵
  • 贝德福德公爵
  • 波旁公爵
  • 白金汉公爵
  • 勃艮第公爵
  • 康沃尔公爵
  • 埃克塞特公爵
  • 佛罗伦萨公爵
  • 格洛斯特公爵
  • 米兰公爵
  • 诺福克公爵
  • 奥尔良公爵
  • 萨福克公爵
    $("ul li").each(function() {
        var current = $(this).text()[0];
        if (current != previous) { 
            $(this).attr("id", "first_letter_" + current);
            previous = current;
            $("#index").append("<a href='#first_letter_" + current + "'>" + current + "</a><br/>");
        }
    });