如何检查$('。name')是否包含特定值

时间:2020-02-08 16:34:46

标签: javascript jquery html arrays loops

我想检查$('.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]

    }
}

2 个答案:

答案 0 :(得分:0)

只需尝试:

  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);
<div class="name">Some Text</div>


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

答案 1 :(得分:0)

使用键盘检查数组是否具有用户键入的字符。

$(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>