jquery 处理列表按键

发布于 2024-10-06 04:20:35 字数 470 浏览 3 评论 0原文

我有一个这样的列表:

<div id="txt"></div>
<ul><li><a href="#">Tom</a></li><li><a href="#">Tina</a></li><li><a href="#">Berba</a></li><li><a href="#">Tyson</a></li><li><a href="#">Bank</a></li></ul>

我的目标是:当我按“T”这样的键时,“Tom”将出现在#txt中,再按一次“T”,蒂娜将在#txt中替换Tom。

我找不到解决方案! :(

有人可以帮助我吗?谢谢

I have a list like:

<div id="txt"></div>
<ul><li><a href="#">Tom</a></li><li><a href="#">Tina</a></li><li><a href="#">Berba</a></li><li><a href="#">Tyson</a></li><li><a href="#">Bank</a></li></ul>

my goal is: when i press a key like "T" and "Tom" will appear in #txt, and press "T" once more time, Tina will replace Tom in #txt.

I can't find a solution for this!!! :(

Someone can help me? Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

紙鸢 2024-10-13 04:20:35

监听 keydown 事件,获取 keycode,获取目标名称集,循环名称。
可能会像这样

var lastchar, i=-1;
$(document).bind('keydown',function(e){
  var char = String.fromCharCode(e.which),
      names = $('li a').filter(function(){
        return $(this).text().charAt(0)==char;
      });
  if( !names.length ){ return; }

  if( char != lastchar ){ i=-1; }
  $('#txt').text( names.eq( ++i % names.length ) );
});

Listen keydown event, get keycode, get target name set , loop name.
It may like this

var lastchar, i=-1;
$(document).bind('keydown',function(e){
  var char = String.fromCharCode(e.which),
      names = $('li a').filter(function(){
        return $(this).text().charAt(0)==char;
      });
  if( !names.length ){ return; }

  if( char != lastchar ){ i=-1; }
  $('#txt').text( names.eq( ++i % names.length ) );
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文