eval函数接受字符串
你的res1是一个字符变量,加了"",那不是让eval去运行"res1"语句了,js里面当然是没这语句的,把引号去掉就好了
你的res1是一个字符变量,加了"",那不是让eval去运行"res1"语句了,js里面当然是没这语句的,把引号去掉就好了
解决方案 »
- EXTjs:这两个表单框有什么区别呢?:)
- 用javascript制作VB/Java代码高亮工具。。
- 控制输入框输入
- 关于Media player播放器问题?
- 请问jQuery如何得到服务器返回值?
- 求助:计算星期几是几号的函数
- 如何查看一个HTML对象的某个属性在JAVASCRIPT中应该是哪个部分?
- 页面中的“上一步”操作,如何写?
- 为什么他老说找不到对象add_nav.style.display
- web中有没有这样的select控件:既可以从下拉列表中选择,又可以手动输入值?
- IE工具栏增加按钮功能后,如何实现点击IE工具栏新增的按钮点击后出现像IE工具栏历史按钮的效果
- Ajax接收值的问题!!!
<img src="images/1.jpg" name=pic1 />
<script language=javascript>
res1 ="document." + "getElementById(\"pic1\")"+".src";
res0 ="document." + "getElementsByName(\"pic1\")[0]"+".src";alert(eval("res0"));
alert(eval(res0));
alert(eval("res1"));
alert(eval(res1));
res2 = document.getElementById("pic1").src
alert(res2);
</script>
</body> 我也说不出eval的用法,只能体会和用,不懂说。
res1 ="document." + "getElementByName(\"pic1\")"+".src";
正确的方法是getElementsByName()。
因为getElementsByName('pic')返回的是一个所有name属性值为“pic”的元素对象集合。在eval函数()里加引号的是字符串。
如:“var”在这里是一个字符串,而不是js关键字;
“res1”在这里也是字符串,而不是变量;
“123+456”在这里也还是字符串,而不是表达式;
不加引号的是表达式或变量。
eval到作用就是将字符串和表达式或变量重新组合成一个新的表达式。
例如:
abc=123+456;
eval("var res1="+abc+"789"+";");
就是重新定义一个变量res1,它的值等于abc的值再加上字符串“489”。
相当于:
abc=123+456;
var res1=abc+"789";
即579789。