javascript - ul 标签中的键盘快捷键

标签 javascript html

我有一个<ul>使用 PHP 创建:

$WORLD_STATES =
     array(
        "France",
        "Germany", 
        "Greece",
        "Greenland",
        "United Kingdom",
        "United States", 
        "Uruguay"
     );

echo '<ul>';
for($i=0; $i<sizeof($WORLD_STATES); $i++){
    echo '<li rel="' . $WORLD_STATES[$i] . '">'.$WORLD_STATES[$i].'</li>';
}

echo '</ul>';

由于完整的国家/地区列表很长,并且 div 标记中有滚动条,因此我希望用户只需按字母键盘快捷键即可到达某个国家/地区。

我怎样才能做到这一点?

这是一张图片:

alt text

最佳答案

要使用 jQuery 来完成此操作(jQuery 建议作为一种简单/可靠的方法来抽象跨浏览器的不一致),我建议在列表的开头添加一个搜索框,给出以下内容:

html:

<ul>
    <li><input type="text" name="search" id="search" /></li>
    <li>Armenia</li>
    <li>Belgium</li>
    <li>China</li>
    <li>Denmark</li>
    <li>Estonia</li>
    <li>France</li>
    <li>Germany</li>
    <li>Holland</li>
    <li>Ireland</li>
    <li>Japan</li>
    <li>Luxembourg</li>
    <li>Monaco</li>
    <li>Netherlands</li>
</ul>

jQuery:

$('#search').keyup(
    function(e){
        var string = $(this).val();
        if (string.length > 0){
            $('ul li:contains(' + string + ')')
                .addClass('result');
            $('.result')
                .not(':contains('+ string + ')')
                .removeClass('result');
        }
        else {
            $('.result').removeClass('result');
        }
    });

JS Fiddle demo .

关于javascript - ul 标签中的键盘快捷键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4421540/

相关文章:

javascript - 使用 JavaScript 读取文档类型

html - 无法在 div 中将图像居中

html - 如何修复未捕获的 ReferenceError : play is not defined at HTMLButtonElement. onclick

html - 跳过只读文本框

javascript - 如何使用 Greasemonkey 单击 <li> 项?

javascript - 在javascript中从对象创建DOM元素

javascript - 设置显示 :none to cell on first row messes up table layout

javascript - 如何在 Ember.js 模板中为 Twitter Bootstrap 轮播创建迭代器

javascript - 如何为具有相同id的多个div设置jQuery mouseleave函数

javascript - EXTJS GRID 和存储