如何在textarea处过滤多个id并显示其他无关内容

西瓦科恩

我想user_id从所有列表数据中查找

当我搜索user_id,我将复制user_idexcel并将其粘贴到textarea

然后user_id我选择的全部必须与user_id全部匹配list data

这是我的代码

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<textarea name="" id="paste_your_id"></textarea>
<ul class="ul-list">
  <li data-id="1">Mr. A</li>
  <li data-id="2">Mr. B</li>
  <li data-id="3">Mr. C</li>
  <li data-id="4">Mr. D</li>
  <li data-id="5">Mr. E</li>
  <li data-id="6">Mr. F</li>
  <li data-id="7">Mr. G</li>
</ul>

输出

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<textarea name="" id="paste_your_id">1
2
3
7</textarea>
<ul class="ul-list">
  <li data-id="1">Mr. A</li>
  <li data-id="2">Mr. B</li>
  <li data-id="3">Mr. C</li>
  <li data-id="4" style="display:none;">Mr. D</li>
  <li data-id="5" style="display:none;">Mr. E</li>
  <li data-id="6" style="display:none;">Mr. F</li>
  <li data-id="7" >Mr. G</li>
</ul>

非常感谢

您可以通过这种简单的方法来实现

var userList = $(".ul-list").find("li").toArray(); // Store list of userId value here

$("#paste_your_id").on("keyup", function()
{
  var strIds = $(this).val();
  var arrayIds = strIds.split(/[^\d]+/); // Split each item by `whitespace` or `by line` 
  var isFilter = arrayIds.filter(item => item !== "").length > 0;
 
  userList.forEach(item => 
  {
    var id = $(item).data("id").toString();
    var isShow = !isFilter || arrayIds.indexOf(id) !== -1;
    $(item).toggle(isShow);
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea name="" id="paste_your_id"></textarea>
<ul class="ul-list">
  <li data-id="1">Mr. A</li>
  <li data-id="2">Mr. B</li>
  <li data-id="3">Mr. C</li>
  <li data-id="4">Mr. D</li>
  <li data-id="5">Mr. E</li>
  <li data-id="6">Mr. F</li>
  <li data-id="7">Mr. G</li>
</ul>

更新

  1. 通过这种方式display:block删除文本时,您的列表数据可以还原为textarea

    var isFilter = arrayIds.filter(item => item !== "").length > 0;

  2. 使用.toggle()更优雅

  3. 我在JS代码中提到的一些注释可提高性能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在循环函数中过滤后的 id 处过滤另一个

PHP-如何过滤内容并在其他位置彼此相邻显示

如何通过ViewPager显示其他内容?

如何禁止相关内容显示在我的帖子中

如何在 couchbase 中选择由字段其他 id 过滤的文档?

如何用CharSequence之后的其他内容过滤ListView?

如何在只有 ID 但没有其他内容的列表中识别 df

如何在不删除和更改其他文本的情况下通过提示向 textarea 添加多个值?

如何基于Python中的其他多个列表过滤列表?

当html仍在运行并显示其他内容时,如何在html中使用Javascript显示时间

如何在vue js中显示从其他页面发送的id数据

如何只显示“今天”而没有其他内容?

如何在其他字段上过滤Django Queryset?

如何在DetailView中过滤其他模型?

如何在r中具有最佳响应的变量之前和最大值处过滤观测值?

Rails 5:如何在公用文件夹中获取错误页面,以使其他语言环境显示除“ en”以外的其他内容?

使用其他列表的内容过滤列表

如何在freemarker模板文件中隐藏其他内容?

如何在 while 循环中打印其他内容?

如何在R循环中引用其他内容

WordPress ACF 如何过滤 textarea 字段内容

如何在显示其他输出(闪亮的r)的选项卡面板中并排放置多个图?

如何在我的数据表中添加一列以显示多个其他列的值的总和?

如何在 xmpp 多个客户端同一用户上显示其他客户端发送的消息

单击另一个元素并显示相关内容时如何起飞

在Angular中单击时如何显示模板中相关内容的div

Laravel:如何在循环中显示其他表的值?

如何在Razor视图中显示其他模型列?

如何在栏上方显示其他值