javascript - 试图从我的搜索框中显示数据,但看起来它根本不起作用
问题描述
我正在尝试为我的网站制作一个搜索框,我可以在其中搜索我列出的服务器。我已将 ngrok 隧道链接附加到我的本地主机。这里
现在这是我的搜索栏 HTML 代码:
<section class="section_sapce">
<div class="row">
<div class="container" style="margin-bottom: 10px">
<div class="col-sm-6 com-md-4 center-block">
<div class="row no-gutter cta-content">
<div class="location-head">
<h2 class="text-uppercase text-center">Search Location</h2>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="container">
<div class="col-sm-10 com-md-8 center-block">
<form class="form-inline domainsearch bg_white" method="post" action="#">
<div class="row no-gutter">
<div class="col-sm-10">
<input type="text" id="searchbar" onkeyup="searchLocation()" class="form-control" name="searchbar" placeholder="Enter your location">
</div>
<div class="col-sm-2">
<button type="submit" class="btn btn-new" style="width:100%">SEARCH</button>
</div>
</div>
</form>
</div>
</div>
</div>
</section>
这是我的 HTML 位置元素
<div class="location">
<div class="row dedicated-box">
<div class="col-sm-1 dedicated-img">
<a href="dedicated-servers-in-atlanta.php">
<span>
<img src="images/countries/united-states.png" alt="Dedicated Servers in Atlanta">
</span>
<p id="locationOf">Alaska</p>
</a>
</div>
</div>
这是我的 JS 脚本文件的代码:
function searchLocation() {
let input = document.getElementById('searchbar').value;
input = input.toLowerCase();
let location = document.getElementsByClassName('location');
let locationName = document.getElementById('locationOf');
for (var i = 0; i < location.length; i++) {
if (!location[i].innerHTML.toLowerCase().includes(input)) {
location[i].style.display = "none";
}
else if (input == locationName.innerHTML) {
return location[i].style.display.location.innerHTML;
}
}
}
你能检查一下并告诉我我做错了什么吗?您也可以查看 Ngrok 链接以查看它。提前致谢
解决方案
问题不在于脚本,而在于您的
<div class="location">
嵌套在检查您添加的循环以迭代此名称的 php 代码中。
检查我的片段,我以适当的方式安排它的工作。
function getParent(ele, parentClass="parent"){
var e = ele;
while(!e.classList.contains(parentClass)){
e=e.parentElement;
}
// console.log(e);
return e;
}
function searchLocation() {
let input = document.getElementById('searchbar').value;
//console.log(input);
input = input.toLowerCase();
let location = document.getElementsByClassName('location');
if(input == ""){
for (var i = 0; i < location.length; i++) {
location[i].style.display = "block";
}
}
else{
let locationName = document.getElementsByClassName('locationOf');
var parent;
for (var i = 0; i < locationName.length; i++) {
parent = getParent(locationName[i], "location");
if (!locationName[i].innerHTML.toLowerCase().includes(input)) {
parent.style.display = "none";
}
else if (input == locationName.innerHTML) {
return parent.style.display = "block";
}
}
}
}
<section class="section_sapce">
<div class="row">
<div class="container" style="margin-bottom: 10px">
<div class="col-sm-6 com-md-4 center-block">
<div class="row no-gutter cta-content">
<div class="location-head">
<h2 class="text-uppercase text-center">Search Location</h2>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="container">
<div class="col-sm-10 com-md-8 center-block">
<form class="form-inline domainsearch bg_white" method="post" action="#">
<div class="row no-gutter">
<div class="col-sm-10">
<input type="text" id="searchbar" onkeyup="searchLocation()" onkeydown="searchLocation()" class="form-control" name="searchbar" placeholder="Enter your location">
</div>
<div class="col-sm-2">
<button type="submit" class="btn btn-new" style="width:100%">SEARCH</button>
</div>
</div>
</form>
</div>
</div>
</div>
</section>
<div class="location">
<div class="row dedicated-box">
<div class="col-sm-1 dedicated-img">
<a href="dedicated-servers-in-atlanta.php">
<span>
<img src="images/countries/united-states.png" alt="Dedicated Servers in Atlanta">
</span>
<p class="locationOf">Arizona</p>
</a>
</div>
</div>
</div>
<div class="location">
<div class="row dedicated-box">
<div class="col-sm-1 dedicated-img">
<a href="dedicated-servers-in-atlanta.php">
<span>
<img src="images/countries/united-states.png" alt="Dedicated Servers in Atlanta">
</span>
<p class="locationOf">Michigan</p>
</a>
</div>
</div>
</div>
<div class="location">
<div class="row dedicated-box">
<div class="col-sm-1 dedicated-img">
<a href="dedicated-servers-in-atlanta.php">
<span>
<img src="images/countries/united-states.png" alt="Dedicated Servers in Atlanta">
</span>
<p class="locationOf">Detroit</p>
</a>
</div>
</div>
</div>
<div class="location">
<div class="row dedicated-box">
<div class="col-sm-1 dedicated-img">
<a href="dedicated-servers-in-atlanta.php">
<span>
<img src="images/countries/united-states.png" alt="Dedicated Servers in Atlanta">
</span>
<p class="locationOf">New York</p>
</a>
</div>
</div>
</div>
<div class="location">
<div class="row dedicated-box">
<div class="col-sm-1 dedicated-img">
<a href="dedicated-servers-in-atlanta.php">
<span>
<img src="images/countries/united-states.png" alt="Dedicated Servers in Atlanta">
</span>
<p class="locationOf">Atlanta</p>
</a>
</div>
</div>
</div>
<div class="location">
<div class="row dedicated-box">
<div class="col-sm-1 dedicated-img">
<a href="dedicated-servers-in-atlanta.php">
<span>
<img src="images/countries/united-states.png" alt="Dedicated Servers in Atlanta">
</span>
<p class="locationOf">Atlanta</p>
</a>
</div>
</div>
</div>
<div class="location">
<div class="row dedicated-box">
<div class="col-sm-1 dedicated-img">
<a href="dedicated-servers-in-atlanta.php">
<span>
<img src="images/countries/united-states.png" alt="Dedicated Servers in Atlanta">
</span>
<p class="locationOf">Atlanta</p>
</a>
</div>
</div>
</div>
<div class="location">
<div class="row dedicated-box">
<div class="col-sm-1 dedicated-img">
<a href="dedicated-servers-in-atlanta.php">
<span>
<img src="images/countries/united-states.png" alt="Dedicated Servers in Atlanta">
</span>
<p class="locationOf">Atlanta</p>
</a>
</div>
</div>
</div>
<div class="location">
<div class="row dedicated-box">
<div class="col-sm-1 dedicated-img">
<a href="dedicated-servers-in-atlanta.php">
<span>
<img src="images/countries/united-states.png" alt="Dedicated Servers in Atlanta">
</span>
<p class="locationOf">Atlanta</p>
</a>
</div>
</div>
</div>
推荐阅读
- reactjs - ion-slides - 幻灯片的动态数量
- terraform - 删除 google_kms_crypto_key 资源时出现错误消息
- google-docs-api - Google docs API 获取位置索引和每个字符的时间戳
- python-3.x - 为什么当我在函数中设置 if-none 时它仍然显示缺少所需的位置参数?
- python - 如何使用 redis 缓存散景图
- date - 使用 QUERY IMPORTRANGE 从另一个工作表导入,但查询当前工作表的位置
- indexing - 禁用 Google Cloud Datastore 中的内置索引
- python - Pyspark中具有不同列的两个数据框的交集
- python - 为什么 Wikipedia API 不返回请求页面的摘要(Python)?
- 3d - GNUplot 在 3D 图中给定平面中旋转标签的问题