0

I have script

<script type="text/javascript">
   a = eval("dog!='cat'");
   document.write(a);
</script>

It give's "dog is not defined".But i want true/false. If i put,

    <script type="text/javascript">
       a = eval("'dog'!='cat'");
       document.write(a);
    </script>

It works. But i cannot put quotes to dog because condition dynamically generated, can any one suggest any other way to do it. Here cat have quotes,but dog don't have the quotes.

4

2 回答 2

1

如果您希望您的操作

  • false如果dog未定义则返回
  • 返回dog'cat'其他的比较结果

写吧

((typeof dog != 'undefined') && (dog != 'cat'))

你绝对不需要eval电话。上面的表达式返回一个布尔值,所以你只需要

a = ((typeof dog != 'undefined') && (dog != 'cat'))
document.write(a);

另外,我不完全理解,您的“条件动态生成”是如何产生的,但无论如何,您可以dog以变量(可能是字符串)的方式进行操作,因此您可以使用此代码。

于 2012-07-20T10:45:15.720 回答
0

如果您尝试比较的值来自页面上的文本框,您将必须先获取该文本框的值并存储它。

举个例子:

<input type="text" id="dogText" />

并且您想将该文本框中输入的文本与'cat' First 进行比较,您需要获取该值。试试 jQuery。

var dog = $("#dogText").val();
a = (dog !== cat);

确保您使用!=!==取决于您实际寻找的内容。

或者,也许你试图做这样的事情?

您说过您的“条件是动态生成的”?你的意思是字符串是动态生成的?如果是这种情况,则意味着您dog来自某个地方..

var str = 'dog'
var condition = "'" + str + "'!='cat'";

这会在其中添加引号,它们似乎丢失了?

然后我又可能会再次偏离目标..

于 2012-07-20T10:58:43.033 回答