gpt4 book ai didi

javascript - 我如何在jquery中选择多个数组?

转载 作者:行者123 更新时间:2023-12-03 03:04:35 25 4
gpt4 key购买 nike

大家好,我需要选择名称、事件和电子邮件,并在其中进行搜索,而不仅仅是其中之一,正如您在输入 getElementsByTagName("td")[1]; 时所看到的那样;我在名称中进行搜索,当我输入 getElementsByTagName("td")[2]; 时我可以在事件中搜索,但我需要搜索所有 3 个,只是 3 个,而不是全部感谢您的帮助:)

<!DOCTYPE html>
<html>
<body>

<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for names..">
<table id="myTable" class="table table-hover table-inverse tablesorter">
<thead>
<tr class="header">
<th>
<input type="checkbox" value="All" id="selectIDs" />
</label>
</th>
<th>Name</th>
<th>Event</th>
<th>Email</th>
<th>Iban</th>
<th>UID</th>
<th>Date</th>

</tr>
</thead>
<tbody>
<% uids.forEach(function(uid){ %>
<tr>
<td><input type="checkbox" class="checkbox" name="productIds" value="<%=uid._id%>"></td>
<td ><%= uid.name %></td>
<td ><%= uid.event %></td>
<td ><%= uid.email %></td>
<td><%= uid.iban %></td>
<td><%= uid.uid %></td>
<td><%= uid.readableDate %></td>

</tr>
<% }) %>

</tbody>

</table>

<p id="demo"></p>

<script>
function myFunction() {
// Declare variables
var input, filter, table, tr, td, i;
input = document.getElementById("myInput");
filter = input.value.toUpperCase();
table = document.getElementById("myTable");
tr = table.getElementsByTagName("tr");

// Loop through all table rows, and hide those who don't match the search query
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td")[1];

if (td) {
if (td.innerHTML.toUpperCase().indexOf(filter) > -1) {
tr[i].style.display = "";
} else {
tr[i].style.display = "none";
}
}
}
}
</script>

</body>
</html>

最佳答案

您可以使用一个包含所需行 3 个元素的数组吗?

let newArray = new Array();
if(tr[i].getElementsByTagName("td")[1]) newArray.push(tr[i].getElementsByTagName("td")[1].innerHTML.toUpperCase());
if(tr[i].getElementsByTagName("td")[2]) newArray.push(tr[i].getElementsByTagName("td")[2].innerHTML.toUpperCase());
if(tr[i].getElementsByTagName("td")[3]) newArray.push(tr[i].getElementsByTagName("td")[3].innerHTML.toUpperCase());

然后你在这个数组中搜索:

if (newArray.filter((e,i) => e.indexOf(filter) > -1).length > 0) {
tr[i].style.display = "";
} else {
tr[i].style.display = "none";
}

或者

if (newArray.indexOf(filter) > -1) {
tr[i].style.display = "";
} else {
tr[i].style.display = "none";
}

如果您想检查每个字母或整个单词。

这样更好吗?

关于javascript - 我如何在jquery中选择多个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47225271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com