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