【问题标题】:How to check if $('.name') contains a specific value如何检查 $('.name') 是否包含特定值
【发布时间】:2020-05-24 11:56:45
【问题描述】:

我想检查特定值是否在 $('.name') 中。我怎样才能做到这一点?我无法遍历 $('.name'),因为我已经遍历了一个数组来检查每个条目是否在 $('.name') 中。我的数组可能包含比$('.name') 更多的对象。这是更好理解的代码:

let arr = ["a", "b", "c"];
let test = $('.name'); // <- contains multiple childs

for (let i = 0; i < arr; i++) {
    if (true) { // <- test contains arr[i]

    }
}

【问题讨论】:

  • 你需要哪个具体值?
  • 请添加您处理过的代码
  • @KunalMukherjee 添加了一些代码 :)。
  • @TiSer 添加了一些代码 :)。

标签: javascript jquery html arrays loops


【解决方案1】:

试试看:

  const
      target = 'Some Text',
      query = $('.name'),
      check = ({ innerHTML }) => innerHTML.includes(target),
      result = Array.from(query).some(check);

  console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<div class="name">Some Text</div>

或者没有Jquery:

const
      target = 'Some Text',
      check = ({ innerHTML }) => innerHTML.includes(target),
      result = [...document.querySelectorAll('.name')].some(check);

  console.log(result);
&lt;div class="name"&gt;Some Text&lt;/div&gt;

基本上你是对的,JQuery 的查询对象除了数组单元格之外还包含其他元素,但是数组的一些功能仍然可用,例如length。 如果你想将在 Jquery 中找到的元素引用为一个数组,只需使用Array.from,这意味着你可以这样写:Array.from($('.name'))(虽然在这种情况下你实际上不需要 Jquery,你可以使用内置函数document.querySelectorAll)。

【讨论】:

  • 是不是可以把`$('.name') 转成字符串,然后用includes('abc')检查?
  • @fnm65404 只搜索元素包含的内部文本?我变了,现在看。
  • 非常感谢您的努力。我会记住这一点的。
【解决方案2】:

使用 keyup 检查数组是否有用户输入的字符。

$(function() {
  const arr = ["a", "b", "c"],
    test = $('.name');

  $('.name').keyup(function(event) {
    const currentVal = $(this).val();
    const containsText = arr.some(x => x === currentVal);

    if (containsText)
      console.log('Contains value ' + currentVal);
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<!DOCTYPE html>
<html>

<head>
  <title>Page Title</title>
</head>

<body>
  <input class="name" type="text" />
</body>

</html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 2021-09-22
    • 1970-01-01
    • 2016-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多