eval: выполнение цепочки цепочек jquery с динамическими значениями - PullRequest
3 голосов
/ 29 июля 2011

Я хотел бы выполнить эту строку jQuery, но пока единственный способ, которым я знаю, как использовать eval, каков более подходящий способ сделать это?

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


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

    eval(Chain)
}

Ответы [ 2 ]

6 голосов
/ 29 июля 2011

Существует еще один способ доступа к свойствам с использованием записи [].Таким образом, вы также можете передавать динамические значения:

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

Если быть точным, $(...).something равно $(...)['something'].Таким образом, передача чего-либо после . всегда является литеральной строкой, в то время как [...] не обязательно должна быть литеральной строкой.

2 голосов
/ 29 июля 2011
function thisWay(direction) {
    if (direction == 'next') {
        $('#img').next('div');
    }
    else {
        $('#img').prev('div');
    }
}
...