首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于Alphabet按钮显示和隐藏表行

基于Alphabet按钮显示和隐藏表行
EN

Stack Overflow用户
提问于 2018-10-23 12:56:06
回答 1查看 19关注 0票数 0

我有一个有很多行的表,我想让用户能够点击'A‘按钮,并显示所有以'A’开头的结果。他们可以对每封信都这么做。这就是我到目前为止想出的:

代码语言:javascript
复制
<input type="button" id="aSort" value="A" onclick="alphaSort(this.value);">
    <table>
    <thead>
        <tr>
            <td>Title</td>
            <td>Description</td>
            <td>Active</td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td name="title">Apple</td>
            <td>It's a fruit</td>
            <td>Active</td>
        </tr>
        <tr>
            <td name="title">Pear</td>
            <td>It's also fruit</td>
            <td>No</td>
        </tr>
    </tbody>
    </table>

JS

代码语言:javascript
复制
function alphaSort(val) {
    //pseudocode
    var $rows = $('td[name=title]');
    $rows.forEach(function(e) {
        if(e.innerText == val + '%') {
            e.closest('tr').show();
        } else {
            e.closest('tr').hide();
        }
    }
}

因此,我这里的想法是,如果用户只单击Apple行将显示的按钮。理想情况下,该函数将不区分大小写。有人能帮助我正确地迭代所有表行并比较存储在title行中的值吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-23 13:05:05

您可以使用startsWith函数:startswith.asp

就像这样:

代码语言:javascript
复制
$("#aSort").click(function(){
    var $rows = $('td[name=title]');
    var val = $(this).val()
    $rows.each(function() {
        if($(this).text().startsWith(val)) {
            $(this).closest('tr').show();
        } else {
            $(this).closest('tr').hide();
        }
    })
})

https://jsfiddle.net/xpvt214o/899140/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52949667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档