-1

我有以下 eval 来调用函数 F。

eval('F()');

这是 F 的定义,它应该采用 DOM 或 JQuery 对象(通过选择器获得,例如 $('#move'))

function F(dom_element) {
  alert('in F');
}

我尝试了以下方法,但它不起作用:

eval('F(' + dom_element +')');

我找不到将对象(非字符串或数字)数据传递给 F 的解决方案。有人可以帮我吗?

谢谢并恭祝安康!

-----------------回复“你为什么要评估它” -----------------

我在链接上有一个通用模式窗口,可以进行一些删除工作。例如:

<a href="#" class="link-confirm-action" data-action="deleteRecordTypeA">delete</a>

在上面,“link-confirm-action”类将调用模态窗口以在实际删除之前获得确认。在模态窗口的 javascript 中,当用户决定继续时,我有以下内容:

eval($(this).attr('data-action'));

实际删除因链接而异。我可以有 deleteRecordTypeA、deleteRecordTypeB 等。它们都是函数。这些函数需要了解它们的环境才能进行有意义的后端 Ajax 工作和前端 DOM 操作。

谢谢!

4

1 回答 1

0

eval() 只会像普通的 javascript 代码一样执行字符串,所以在这里它会调用你的函数,我认为你不需要把它放在 eval 中。如果您希望函数获取诸如 DOM 元素之类的对象,则可以在函数之前编写获取字符串中元素的代码:

eval('var elem=document.getElementById("elem_id");F(elem);');
于 2013-09-03T01:39:45.213 回答