Javascript 如何将数组和IndexOf一起使用?

Javascript 如何将数组和IndexOf一起使用?,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试创建一个字符串数组,并使用indexOf函数检查文本是否存在于上,如果它存在,我希望它执行,否则什么都不做? 例如,一个存在于上,因此indexOf可以识别 问题是这段代码在我不使用数组的时候不起作用 更新-感谢indexOf工作正常,但我在var str上使用数组的方式似乎不起作用 HTML 任何帮助都将不胜感激您使用它的方式不对。在这种情况下,您需要的是数组的indexOf()原型,而不是字符串,因此您的逻辑应该是: if( array.indexOf(str) > -1 )

我正在尝试创建一个字符串数组,并使用indexOf函数检查文本是否存在于
上,如果它存在,我希望它执行,否则什么都不做? 例如,一个存在于
上,因此indexOf可以识别 问题是这段代码在我不使用数组的时候不起作用

更新-感谢indexOf工作正常,但我在var str上使用数组的方式似乎不起作用

HTML


任何帮助都将不胜感激

您使用它的方式不对。在这种情况下,您需要的是
数组的
indexOf()
原型,而不是字符串,因此您的逻辑应该是:

if( array.indexOf(str) > -1 )
{
  // Do stuff!
}

正如@BenM所指定的那样,
.indexOf()
方法不是以这种方式使用的

也许这个片段会有用:

var数组=['1','2','3','4'];
//使用.each()函数迭代页面中找到的每个元素
$('td')。每个(
函数(){
if(array.indexOf($(this.text())>-1){
console.log(“'+$(此).text()+'”在数组中找到);
}
}
);

试验
不

实际上它也是一种字符串原型方法请记住,
$('td').text()
将返回页面上每个td的文本内容<代码>“OneNo.”
在提供的案例中。该数组似乎不适用于var str=$('td:contains(“+array+”))。text();我用错了吗?如果我问的问题是基本的,我仍然很抱歉。当str命中if语句时,它的值是多少?您可以打开控制台,检查
'td:contains(“+array+”)
是什么。然后打开jquery检查contains选择器的工作方式。将整个数组传递给选择器不起作用。它可以是数组['1'、'2'、'3'、'4'…]中的任何一个,因为值发生了变化,所以我尝试将其保留为数组。谢谢这是我一直在寻找的,它可以工作。再次感谢
var array =  ['One', 'Two', 'Three', 'Four'];
var str = $('td:contains(" + array + ")').text();
if(array.indexOf(str) > -1){
 console.log('Array works');
}
if( array.indexOf(str) > -1 )
{
  // Do stuff!
}