2011-07-28 20 views
3

我想执行这个jQuery字符串,但到目前为止,我知道如何使用eval的唯一方法是什么,这样做的更合适的方法是什么?eval:使用动态值执行一个jQuery链字符串

var first = thisWay('next') 
var second = thisWay('prev') 


var thisWay = function(direction){ 
    var Chain = "$('#img')." + direction + "('div');"; 

    eval(Chain) 
} 

回答

6

还有另一种使用[]表示法访问属性的方法。这样,你可以通过动态值,以及:

$('#img')[direction]('div'); 

准确地说,$(...).something等于$(...)['something']。因此,在.之后传递某些内容始终是一个文字字符串,而[...]不一定必须是文字字符串。

+0

比我的回答好得多,不知道你能做到这一点。 – Caimen

2
function thisWay(direction) { 
    if (direction == 'next') { 
     $('#img').next('div'); 
    } 
    else { 
     $('#img').prev('div'); 
    } 
} 
+0

你的函数确实有更好的支持,因为它永远不会调用一个不存在的函数,所以+1。 – pimvdb

相关问题