日期:2014-05-16  浏览次数:20355 次

200分求解决一eval问题
<script     language= "javascript ">    
function     test(obj)    
{    
              alert(obj.id);    
}    
 
var     obj     =     document.getElementById( "a ");    
eval( "test( "+obj+ ") ");    
</script>    
<div     id= "a "> test </div>    
我想通过eval调用一个带参数(参数为一对象)的函数,代码如上所示,     在test()中获取到的obj为undefine,     如何才能在这里得到div对象?多谢!

------解决方案--------------------
那是因为你的DIV还没有加载,脚本就执行了,因为没有找到该对象,所以提示undefined
你可以这样:

<div id= "a "> test </div>

<script language= "javascript ">
function test(obj)
{
alert(obj.id);
}

var obj = document.getElementById( "a ");
eval( "test( "+obj+ ") ");
</script>
------解决方案--------------------
<div id= "a "> test </div>
<script language= "javascript ">
function test(obj)
{
alert(obj.id);
}

var obj = document.getElementById( "a ");
eval( "test(obj) ");
</script>
------解决方案--------------------
对象不能进行并运算...
------解决方案--------------------
信誉还可以低到4这种地步。。还误导别人

应该是这样
<script language= "javascript ">
function test(obj)
{
alert(obj.id);
}

var obj = document.getElementById( "a ");
eval( "test(obj); ");
</script>
<div id= "a "> test </div>

注意,eval()执行的就是JS代码,不用再引用具体变量
------解决方案--------------------
这年头...
------解决方案--------------------
4个裤衩的提出这种问题。。。。。。
还这么多分。。。。。。
------解决方案--------------------

DIV还要先加载


<div id= "a "> test </div>
<script language= "javascript ">

function test(obj)
{
alert(obj.id);
}

var obj = document.getElementById( "a ");
eval( "test(obj); ");
</script>
------解决方案--------------------
让大家失望了 - -!
------解决方案--------------------
吃粽子
------解决方案--------------------
4个裤衩的提出这种问题。。。。。。
还这么多分。。。。。。
---------------------------------------
不要这么说嘛,也许人家的裤衩是从别的地方捡来的呢
------解决方案--------------------
把引号去掉试下eval(test(obj));
------解决方案--------------------
如果引号去掉不行的话,那就是div还没生成,如果你把 <script> 这里面的代吗放在body中是不行的,页面加载先执行 <script> 的代码,而你的div还没生成,所以出现undefine
------解决方案--------------------
直接test(obj)
------解决方案--------------------