1
var myarray = ["string1", "string2", "string3", "string4"];

function myfunc(myvar)
{
  if ((myarray.indexOf(myvar) > -1)
  {
    alert(myvar);
  }
  else
  {
    alert(myarray.indexOf(myvar));
  }
}

其中myvar是“文本”类型的输入框的值。提醒返回值总是给我-1。有任何想法吗?浏览器为 FF 17.0.1 和 Chrome 23.0.1271.97m

4

3 回答 3

2

未定义的变量

alert(mychannels.indexOf(myelem));
-------------------------^

您在函数参数中获得输入,myvar但没有在任何地方定义myelem. 这会停止脚本。顺便说一句,你想做什么?

如果可行,请尝试将代码替换为:

alert(mychannels.indexOf(myvar));
于 2012-12-22T13:35:14.413 回答
1
  1. 首先跑了100多次。在 Mac OSX 上的最新 Chrome 上没有发生任何事故。

  2. 我只看到不一致的 html 标签。解决了这个问题。

  3. 我假设您在 IE 中遇到问题。为此添加了一个元标记。

运行http://jsfiddle.net/5J2kv/1/看看是否有任何改进。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
于 2012-12-23T06:12:59.843 回答
1

这工作正常。

这是现场示例

var myarray = ["string1", "string2", "string3", "string4"];

$('#myvar').live('change', function () { myfunc($(this).val());});

function myfunc(myvar)
{
  if (myarray.indexOf(myvar) > -1)
  {
    alert(myvar);
  }
  else
  {
    alert(myarray.indexOf(myvar));
  }
}​
于 2012-12-22T13:45:44.660 回答