使用jQuery

时间:2018-04-11 11:52:24

标签: javascript jquery

我想在我的表格中使用jQuery进行实时过滤。

例如:我想只显示name列包含的行" a"和列自由职业者选择输入设置为"是"。

我找到了一些基于文本输入全文过滤的解决方案,以及一些基于选择输入的解决方案,但没有任何地方是两者的组合。有没有办法在没有数据表或类似插件的情况下怎么做?

我会欣赏每一个提示!



<table id="testTable">
    <thead>
        <tr>
            <th>Name <input type="text" name="name"></th>
            <th>Surname <input type="text" name="surname" /></th>
            <th>City <select name="city">
                        <option value="NY">NY</option>
                        <option value="NJ">NJ</option>
                     </select>       
            </th>
            <th>Freelancer <select name="freelancer">
                                <option value="yes">yes</option>
                                <option value="no">no</option>
                            </select>  
            </th>
        </tr>
    </thead>
    <tbody>
        <tr><td>John</td><td>Smith</td><td>NJ</td><td>yes</td></tr>
        <tr><td>Luke</td><td>Jones</td><td>NY</td><td>no</td></tr>
        <tr><td>Jack</td><td>White</td><td>NY</td><td>yes</td></tr>
        <tr><td>Abby</td><td>Scott</td><td>NJ</td><td>yes</td></tr>
        <tr><td>Luke</td><td>Price</td><td>NY</td><td>no</td></tr>
    </tbody>
</table>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

这是一个为你的第一列工作的小代码笔,基本上我只是在每次用户键入一个新字母时检索输入的值,我将遍历所有数组并检查名称是否包含输入。 / p>

首先,您需要在输入中添加一个ID:

id="name" // just an example

我在你的第一个td中添加了一个类名:

class="name"

然后你可以在js文件中添加方法

$('#name').keyup(function () {
  var tr = $('.name')
  var input = $('#name').val()
  tr.each(function() {
    console.log($(this).html().indexOf(input))
    if($(this).html().indexOf(input) >= 0){
      $(this).parent().show()
    }
    else{
      $(this).parent().hide()      
    }
  })
})

https://codepen.io/anon/pen/dmrKxm

我希望它能帮到你