可以从输入中搜索元素数组吗?

时间:2016-06-06 15:19:52

标签: javascript arrays if-statement


我正在创建一个小脚本来尝试根据输入搜索数组中的元素。



var modulo = document.getElementById("modulo").value;
var link = [
  "http://www.forumfree.it/",
  "http://www.forumcommunity.net/",
  "http://www.blogfree.net/",
];
if(modulo.indexOf(link) > -1) {
  alert("Your site is:" + modulo);
} 

else {
  alert("Sorry, I don't found:" + modulo)
}

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>Search element in array</title>
</head>
<body>
<input type="text" id="modulo" class="form">
</body>
</html>
&#13;
&#13;
&#13;

任何人都可以向我解释如何做到这一点(如果还有另一种方法可以做得更好,请告诉我),以及为什么我的代码没有运行?谢谢!

代码说明:我已使用var modulo来包含input的值。然后我创建了一个包含链接的变量。然后if-else statementindexOf进行搜索并找到它。

谢谢,代码解决方案是:https://plnkr.co/edit/bDt4n34KBFAvZrSWmb4a?p = preview

4 个答案:

答案 0 :(得分:2)

您可以尝试使用此弹出器https://plnkr.co/edit/bDt4n34KBFAvZrSWmb4a?p=preview使用事件触发器来搜索网站:

<button onclick="myFunction()">Search</button>

我把你的代码编写成一个函数。

我希望这会对你有所帮助

最终状态:

<!DOCTYPE html>
<html>

<head>
  <link rel="stylesheet" href="style.css">
  <script src="script.js"></script>
</head>

<body>
  <input type="text" id="modulo" class="form">
  <button onclick="myFunction()">Search</button>
</body>

var link = [
  "http://www.forumfree.it/",
  "http://www.forumcommunity.net/",
  "http://www.blogfree.net/",
];

function myFunction() {
  var input = document.getElementById("modulo");
  var results = [];
  for(var i = 0; i < link.length; i++) {
    if(link[i].indexOf(input.value) > -1) {
    results.push(link[i]);
  }
}
if(results.length == 1) {
  alert("Your site is:" + results[0]);
} 
else if (results.length > 1){
  alert("Sorry, your search return more than one result:" + results)
}
else {
  alert("Sorry, I don't found:" + input.value)
}

}

答案 1 :(得分:1)

你有

if(modulo.indexOf(link) > -1)

但我认为它应该是

if(link.indexOf(modulo) > -1) 

假设modulo是单个字符串元素,这将在链接数组中搜索该元素并返回该元素的索引。

答案 2 :(得分:0)

我认为你走在了正确的轨道上。你只需要一些东西:

  • 启动搜索的按钮
  • 将您的代码放入一个函数中,以便您可以调用它
  • 您想在数组link中搜索输入modulo
  • 的值

&#13;
&#13;
function findIt() {
  var modulo = document.getElementById("modulo").value;
  var link = [
    "http://www.forumfree.it/",
    "http://www.forumcommunity.net/",
    "http://www.blogfree.net/",
  ];
  if (link.indexOf(modulo) > -1) {
    alert("Your site is:" + modulo);
  } else {
    alert("Sorry, I don't found:" + modulo)
  }
}
&#13;
<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>Search element in array</title>
</head>

<body>
  <input type="text" id="modulo" class="form">
  <input type="button" onclick="findIt()" value="find it">
</body>

</html>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

function runscript() {
  var modulo = document.getElementById("modulo").value;
  var link = [
    "http://www.forumfree.it/",
    "http://www.forumcommunity.net/",
    "http://www.blogfree.net/",
  ];
  var found = false;
  for(var i = 0; i < link.length; i++) {
    if (link[i].indexOf(modulo) > -1) {
      alert("Your site is:" + link[i]);
      found = true;
    } 
  }

  if (!found) {
    alert("Sorry, I don't found:" + modulo)
  }
}

和HTML

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>Search element in array</title>
</head>
<body>
<input type="text" id="modulo" class="form">
<input type="button" onclick="runscript()" value="search" />
</body>
</html>

您需要按下搜索按钮