如果我在 HTML 中定义 JavaScript 代码片段,如下所示:
<div id=myElem onMyUpdate="alert('Update called for ' + this.id)">...
那么在this
正确分配的 JavaScript 中评估它的最优雅的方法是什么?
到目前为止,我想出的是这样的:
if (elem.hasAttribute('onMyUpdate'))
(function () { eval(elem.getAttribute('onMyUpdate')) }).call(elem);
这看起来很糟糕(对我来说),但有效。有更好/更优雅的选择吗?
MDN 说 eval() 曾经有第二个参数来做到这一点,但现在已被弃用;然后 MDN 建议改用运算符 with() ,如果您按照提供的链接进行操作,那么最新标准将不推荐使用该运算符。换句话说,死胡同。
(作为旁注,StackOverflow 会忽略this
搜索词中的单词,因此它可能会错过相关答案 - 有没有办法告诉它不要?)
编辑:我忘了提:请不要使用 jQuery,只需使用香草 JavaScript