javascript - 放在js文件中时功能不起作用
问题描述
嗨,当我将代码包含在我的 html 中时,这是有效的,但是当我将其移出 myScript.js 时,我没有得到任何结果,任何人都可以指出我在哪里出了问题,因为我希望能够访问这个功能跨越几个页面?
我还有一个附带问题,如果我输入一些内容,然后删除输入值,我的过滤数组会显示所有选项,如果输入框不包含任何值,是否可以将其设置为“”值?
谢谢
function page_search(){
var pages = [
{name: "Test",url: "Test.html"},
{name: "Rest",url: "Rest.html"},
{name: "Best",url: "Best.html"},
];
let input = document.getElementById('searchbar').value
input=input.toLowerCase();
let x = document.getElementById('searchresults');
var results = [];
for(var i=0;i<pages.length;i++){
if(pages[i].name.toLowerCase().indexOf(input) > -1)
results.push("<a href='"+pages[i].url+"' target='_blank'>"+pages[i].name+"</a>")
}
if(results.length == 0)
$(x).html("No Results Found");
else
$(x).html(results.join("<br>"));
return results;
}
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="myScript.js"></script>
</head>
<body>
<div class="searchbar">
<input type="text" id="searchbar" onkeyup="page_search()" placeholder="" value="Search.." maxlenght="25" autocomplete="off"/>
</div>
<div id="searchresults"></div>
</body>
</html>
解决方案
我已经添加了代码,它肯定会解决您在输入框为空时显示“”的第二个问题。我无法复制你的第一个问题,你能告诉你遇到了什么错误吗?
function page_search() {
var pages = [{
name: "Test",
url: "Test.html"
},
{
name: "Rest",
url: "Rest.html"
},
{
name: "Best",
url: "Best.html"
},
];
let input = $('#searchbar').val().toLowerCase()
let x = $('#searchresults');
var results = [];
if (input) {
for (var i = 0; i < pages.length; i++) {
if (pages[i].name.toLowerCase().indexOf(input) > -1) {
results.push(`<a href="${pages[i].url}" target="_blank">${pages[i].name}</a>`);
}
}
} else {
$(x).html("");
return;
}
if (results.length == 0)
$(x).html("No Results Found");
else
$(x).html(results.join("<br>"));
}
var ele = document.getElementById('searchbar');
ele.addEventListener('keyup', page_search);
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>
<body>
<div class="searchbarC">
<input type="text" id="searchbar" placeholder="Search.." maxlenght="25" />
</div>
<div id="searchresults"></div>
<script src="myScript.js" type="text/javascript"></script>
</body>
</html>
推荐阅读
- android - 通用扩展的 Android proguard 规则
- c - C:在数组中找到一对总和为给定数字X的元素
- visual-studio-code - 如何在 Ubuntu 上设置 CMake 参数 -j
- javascript - 问:错误:意外的令牌。预期有构造函数、方法、访问器或属性。ts(1068)
- kotlin - 在kotlin中获取双精度/浮点数的尾数和指数
- xslt - XSLT 连接连续节点的内容
- excel - worksheet.Buttons() 是扩展方法吗?
- javascript - Javascript innerHTML 不起作用并放置在错误的位置
- mysql - AWS RDS - 使用 GRANT ALL PRIVILEGES ON the_db.* TO 'the_user'@'%' 时拒绝管理员用户访问
- postgresql - plpgsql我如何修复回报