我是脚本新手,我正在编写一个脚本来查找某个值是否在数组中。
/ HTML /
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<h1>This is a Heading</h1>
<p>account # a</p>
</body>
</html>
/ 的javascript /
var cid = document.getElementsByTagName("P")[0].childNodes[0].nodeValue;
var res = cid.split(" ");
var customerid=res[2];
var abs=['a','b','c'];
var para = document.createElement("P");
var node = document.createTextNode("'"+customerid+"'");
para.appendChild(node);
document.body.appendChild(para);
var c=document.getElementsByTagName("P")[1].childNodes[0].data;
window.alert(abs.indexOf(c));
警报窗口将索引显示为-1。我的计划是使用以下函数,如果我可以获得上面的代码来获得正确的索引。
function check(){
if (abs.indexOf(c)>=0){
window.alert("item is in array");
}
}
check();
答案 0 :(得分:1)
.indexOf()
将返回-1
。这是因为如果项目位于数组的第一个索引中,则它位于索引0
,因为数组是从零开始的。
对于您的检查功能,如上所述,0
表示在第一个位置的数组中找到了该元素。因此,您需要检查.indexOf()
是否不返回-1而不是大于0:
function check() {
if (abs.indexOf(c) !== -1){
window.alert("item is in array");
}
}
您还可以使用~
快捷方式:
function check() {
if (~abs.indexOf(c)){
window.alert("item is in array");
}
}