2011-07-28 56 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

相關問題