我有脚本
<script type="text/javascript">
a = eval("dog!='cat'");
document.write(a);
</script>
它给出了“狗没有定义”。但我想要真/假。 如果我放,
<script type="text/javascript">
a = eval("'dog'!='cat'");
document.write(a);
</script>
有效。 但我不能把引号放到狗身上,因为条件是动态生成的,任何人都可以提出任何其他方法来做到这一点。 这里猫有引号,但是狗没有引号。
答案 0 :(得分:1)
如果您想进行操作
false
未定义,dog
dog
和'cat'
的比较结果,否则写一下
((typeof dog != 'undefined') && (dog != 'cat'))
您绝对不需要eval
来电。上面的表达式返回一个布尔值,所以你只需要
a = ((typeof dog != 'undefined') && (dog != 'cat'))
document.write(a);
另外,我并不完全明白,你的“条件是如何动态生成的”,但无论如何你都可以这样做,你可以这样做,dog
是一个变量(可能是一个字符串) ,所以你可以使用这段代码。
答案 1 :(得分:0)
如果您要比较的值来自网页上的文本框,则您必须先获取该文本框的值并将其存储起来。
以例如:
<input type="text" id="dogText" />
您想要将该文本框中输入的文字与'cat'
进行比较
首先,你需要获得价值。试试jQuery。
var dog = $("#dogText").val();
a = (dog !== cat);
请务必使用!=
或!==
,具体取决于您实际需要的内容。
或者也许你想尝试做这样的事情?
你说你的'条件是动态生成的'?你的意思是字符串是动态生成的吗?如果是这种情况,则意味着您从某处获得dog
..
var str = 'dog'
var condition = "'" + str + "'!='cat'";
这会添加引号,它们似乎缺失了吗?
然后我又可以 WAY 再次离开标记..