搜索栏以查找多个手风琴中的行
Search bar to find rows in several accordions
我有几个 HTML 表格隐藏在手风琴面板中,我需要搜索所有表格以找到一行,我是否错过了部署相应面板并突出显示相应行的内容?
这是我的代码:
function testSearch(){
console.log("testresearch")
let input = document.getElementById('searchbar').value
input=input.toLowerCase();
let x = document.getElementsByClassName('panel');
for (i = 0; i < x.length; i++) {
if (!x[i].innerHTML.toLowerCase().includes(input)) {
x[i].style.display="none";
}
else {
x[i].style.display="list-item";
}
}
}
<input
id="searchbar"
onkeyup="testSearch()"
type="text"
name="search"
placeholder="..."
/><br />
<button class="accordion button is-light">A</button>
<div class="panel" style="">
<table class="dataframe table is-hoverable is-fullwidth clickable-table">
<tbody>
<tr>
<td>A</td>
<td>A</td>
<td>A</td>
</tr>
</tbody>
</table>
</div>
<button class="accordion button is-light">B</button>
<div class="panel" style="">
<table class="dataframe table is-hoverable is-fullwidth clickable-table">
<tbody>
<tr>
<td>B</td>
<td>B</td>
<td>B</td>
</tr>
</tbody>
</table>
</div>
结果不是我所需要的,我只是对我的 HTML 结构进行了一些更改,但我需要我的面板处于活动状态,然后我需要突出显示具有相应行的匹配输入
// use this
let x = document.querySelectorAll('td'); // select all <td> tags
// instead
let x = document.getElementsByClassName('panel'); // select first <div class="panel"> tag
完整代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Untitled</title>
</head>
<body>
<input id="searchbar" onkeyup="testSearch()" type="text" name="search" placeholder="..." autocomplete=false/><br />
<button class="accordion button is-light">A</button>
<div class="panel" style="">
<table class="dataframe table is-hoverable is-fullwidth clickable-table">
<tbody>
<tr>
<td>A</td>
<td>B</td>
<td>C</td>
</tr>
</tbody>
</table>
</div>
<button class="accordion button is-light">B</button>
<div class="panel" style="">
<table class="dataframe table is-hoverable is-fullwidth clickable-table">
<tbody>
<tr>
<td>D</td>
<td>E</td>
<td>F</td>
</tr>
</tbody>
</table>
</div>
<script>
function testSearch() {
console.log("testresearch")
let input = document.getElementById('searchbar').value
input = input.toLowerCase();
// let x = document.getElementsByClassName('panel');
let x = document.querySelectorAll('td'); // select all <td> tags instead of div.panel tag
for (i = 0; i < x.length; i++) { // for loop
if (!x[i].innerHTML.toLowerCase().includes(input)) {
x[i].style.display = "none";
x[i].style.background = "white"; // setting background style to normal color
}
else if(input<=0){ // if input is empty
x[i].style.display = "initial"; // set style to normal default
x[i].style.background = "white"; // background to normal
}
else { // if input contains value that matches <td> value
x[i].style.display = "initial"; // set style to normal default
x[i].style.background = "yellow"; // set background color to YELLOW as same color of highlighted text
}
}
}
</script>
</body>
</html>
我有几个 HTML 表格隐藏在手风琴面板中,我需要搜索所有表格以找到一行,我是否错过了部署相应面板并突出显示相应行的内容?
这是我的代码:
function testSearch(){
console.log("testresearch")
let input = document.getElementById('searchbar').value
input=input.toLowerCase();
let x = document.getElementsByClassName('panel');
for (i = 0; i < x.length; i++) {
if (!x[i].innerHTML.toLowerCase().includes(input)) {
x[i].style.display="none";
}
else {
x[i].style.display="list-item";
}
}
}
<input
id="searchbar"
onkeyup="testSearch()"
type="text"
name="search"
placeholder="..."
/><br />
<button class="accordion button is-light">A</button>
<div class="panel" style="">
<table class="dataframe table is-hoverable is-fullwidth clickable-table">
<tbody>
<tr>
<td>A</td>
<td>A</td>
<td>A</td>
</tr>
</tbody>
</table>
</div>
<button class="accordion button is-light">B</button>
<div class="panel" style="">
<table class="dataframe table is-hoverable is-fullwidth clickable-table">
<tbody>
<tr>
<td>B</td>
<td>B</td>
<td>B</td>
</tr>
</tbody>
</table>
</div>
结果不是我所需要的,我只是对我的 HTML 结构进行了一些更改,但我需要我的面板处于活动状态,然后我需要突出显示具有相应行的匹配输入
// use this
let x = document.querySelectorAll('td'); // select all <td> tags
// instead
let x = document.getElementsByClassName('panel'); // select first <div class="panel"> tag
完整代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Untitled</title>
</head>
<body>
<input id="searchbar" onkeyup="testSearch()" type="text" name="search" placeholder="..." autocomplete=false/><br />
<button class="accordion button is-light">A</button>
<div class="panel" style="">
<table class="dataframe table is-hoverable is-fullwidth clickable-table">
<tbody>
<tr>
<td>A</td>
<td>B</td>
<td>C</td>
</tr>
</tbody>
</table>
</div>
<button class="accordion button is-light">B</button>
<div class="panel" style="">
<table class="dataframe table is-hoverable is-fullwidth clickable-table">
<tbody>
<tr>
<td>D</td>
<td>E</td>
<td>F</td>
</tr>
</tbody>
</table>
</div>
<script>
function testSearch() {
console.log("testresearch")
let input = document.getElementById('searchbar').value
input = input.toLowerCase();
// let x = document.getElementsByClassName('panel');
let x = document.querySelectorAll('td'); // select all <td> tags instead of div.panel tag
for (i = 0; i < x.length; i++) { // for loop
if (!x[i].innerHTML.toLowerCase().includes(input)) {
x[i].style.display = "none";
x[i].style.background = "white"; // setting background style to normal color
}
else if(input<=0){ // if input is empty
x[i].style.display = "initial"; // set style to normal default
x[i].style.background = "white"; // background to normal
}
else { // if input contains value that matches <td> value
x[i].style.display = "initial"; // set style to normal default
x[i].style.background = "yellow"; // set background color to YELLOW as same color of highlighted text
}
}
}
</script>
</body>
</html>