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. 有点害怕?用不着。其实这相当有
用,人们也经常使用它。

jquery获取对象在数组对象中的索引值

在jquery中有通过索引获取该jquery对象的,单如何通过对象获取该对象所在的索引呢? jquery提供了index(jqueryObj对象)的方法该方法的返回值是索引值,当对象数组中没有该对象...
  • MHuajian
  • MHuajian
  • 2016年09月20日 14:20
  • 4607

ArrayList与LinkedList方法分析一:查找某个对象引用在集合中的索引(index)

1. ArrayList 与 LinkedList类中都有:public int indexOf(Object o)方法。两个类的索引值均是从0到集合大小size - 1。 2. 分析 indexO...
  • cdguogang
  • cdguogang
  • 2012年02月25日 21:10
  • 4859

通过 JSON 字符串来创建对象&通过eval()方法生成原生Javascript对象

代码: 通过 JSON 字符串来创建对象 First Name: Last Name: var txt = '{"employees":[' + '{"firs...
  • Rhythm_dreams
  • Rhythm_dreams
  • 2015年12月10日 14:55
  • 360

for...in和for...of循环以及forEach方法

用Es6对象扩展运算符(…)与rest运算符说明 function test(first,...a){     for(let val=0; val         console.log(val+...
  • Ayiayi00
  • Ayiayi00
  • 2017年08月08日 15:15
  • 234

js eval函数使用,js对象和字符串互转.

js eval函数使用,js对象和字符串互转.
  • liangrui1988
  • liangrui1988
  • 2015年02月26日 22:27
  • 1135

pandas索引对象

《Python for Data Analysis》 索引对象Index对象是不可修改的(immutable),这样才能使Index对象在多个数据结构之间安全共享。In [1]: import pan...
  • Shingle_
  • Shingle_
  • 2017年05月09日 16:07
  • 697

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

eval()函数的使用以及Json对象与Json字符串互转
  • liang526011569
  • liang526011569
  • 2017年03月06日 11:11
  • 2246

Makefile中用foreach,eval,call实现将目标文件编译到指定目录 临峰不畏 发表于5个月前 原 Makefile中用foreach,eval,call实现将目标文件编译到指定目录

https://my.oschina.net/hevakelcj/blog/730872
  • mcusun2000
  • mcusun2000
  • 2017年01月19日 09:57
  • 585

jquery获取当前匹配对象的索引(index)

原文地址:http://blog.sina.com.cn/s/blog_493104e50100li7e.html 找了好多资料,可能搜索关键字不对,所以都没有找到,今天给大伙分享一下: ...
  • plbeast
  • plbeast
  • 2014年02月12日 15:31
  • 610

jquery点击事件获取该元素在整个一类元素中的索引值

有一类div标签,class为pointbox,数量不等,有多个。我需要在点击某一个标签的时候实时获取该标签在这类标签中索引值,以便进行其他操作。 代码很简单: $(".pointbox").cl...
  • sxf359
  • sxf359
  • 2017年01月03日 16:54
  • 3752
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:eval() 获取难以索引的对象
举报原因:
原因补充:

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