eval() 获取难以索引的对象

转载 2006年06月23日 11:32:00
文档对象模型(DOM)的问题之一是:有时你要获取你要求的
对象简直就是痛苦。例如,这里有一个函数询问用户要变换
哪个图象:变换哪个图象

 


  

你可以用下面这个函数:

      
function swapOne()
{
        var the_image = prompt("change parrot or cheese","");
        var the_image_object;

        if (the_image == "parrot")
        {
                the_image_object = window.document.parrot;
        }
  else {
                the_image_object = window.document.cheese;
        }

        the_image_object.src = "ant.gif";
}

连同这些image标记:

<img src="stuff3a/parrot.gif" name="parrot">
<img src="stuff3a/cheese.gif" name="cheese">

请注意象这样的几行语句:

      
the_image_object = window.document.parrot;

它把一个鹦鹉图象对象敷给了一个变量。虽然看起来有点
儿奇怪,它在语法上却毫无问题。但当你有100个而不是两个
图象时怎么办?你只好写上一大堆的 if-then-else语句,要是
能象这样就好了:

 

      
function swapTwo()
{
        var the_image = prompt("change parrot or cheese","");
        window.document.the_image.src = "ant.gif";
}

不幸的是, JavaScript将会寻找名字叫 the_image而不是你所希
望的"cheese"或者"parrot"的图象,于是你得到了错误信息:”
没听说过一个名为the_image的对象”。

 

还好,eval能够帮你得到你想要的对象。

   
function simpleSwap()
{
        var the_image = prompt("change parrot or cheese","");
        var the_image_name = "window.document." + the_image;
        var the_image_object = eval(the_image_name);
        the_image_object.src = "ant.gif";
}

如果用户在提示框里填入"parrot",在第二行里创建了一个字
符串即window.document.parrot. 然后包含了eval的第三
行意思是: "给我对象window.document.parrot" - 也就是
你要的那个图象对象。一旦你获取了这个图象对象,你可以把
它的src属性设为ant.gif. 有点害怕?用不着。其实这相当有
用,人们也经常使用它。

如何用eval来获取对象

JavaScript有许多小窍门来使编程更加容易。其中之一就是eval()函数,这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它。举个例子: var uneveled...

Python可执行对象——exec、eval、compile

这篇文章将对Python提供的调用可执行对象的内建函数进行说明,涉及exec、eval、compile三个函数。exec语句用来执行存储在代码对象、字符串、文件中的Python语句,eval语句用来计...

# eval()函数的使用以及Json对象与Json字符串互转

eval()函数的使用以及Json对象与Json字符串互转

Js中把JSON字符串转换为JSON对象(eval()、new Function())

在我们利用js操作json数据时一般会用到eval进行数据转换了,但有些朋友还喜欢使用function来转换,下面我就给大家总结一下具体例子。 在JS中将JSON的字符串解析成JSON数据格式,...

C# javascript 对象转换(Eval 函数)

这之中使用了以前一些js调用服务器端脚本代码。页面代码:如下http://www.w3.org/1999/xhtml">    无标题页                       var xmlHt...

为什么eval转换json对象字符串时要加括号?

在做与服务器交互数据的时候,我们通常会发起一个Ajax请求,然后服务器返回一个类似'{x:1,y:1}'结构的json字符串,为了方便客户端处理我们会将其转换为一个对象直接量 这很多的时候通过一...
  • A123638
  • A123638
  • 2014年07月22日 09:15
  • 989

Python可执行对象——exec、eval、compile

http://www.pythoner.com/56.html 这篇文章将对Python提供的调用可执行对象的内建函数进行说明,涉及exec、eval、compile三个函数。exec语句用...

oracle 2 基本对象(索引,约束)2

  • 2015年04月17日 14:15
  • 625KB
  • 下载

java script Request获取URL地址栏属性的方法 (Get方式传参)+eval()使用

URL: 经过encodeURI编码: http://localhost:63342/vote/chooseVote.html?vote=%7Binfo:%22s%22multi:true,choi...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:eval() 获取难以索引的对象
举报原因:
原因补充:

(最多只允许输入30个字)