Как оценить переменные с помощью jQuery - PullRequest
1 голос
/ 04 апреля 2011

Я хочу добавить или добавить немного html на страницу.

Вместо выполнения моей функции:

var action = 'prepend'; // may be prepend or append
var htmlStr = '<strong>text example</strong>';
var obj = $('#wrapExample');

if(action == 'prepend'){

    $(obj).prepend(htmlStr);

}else{

   $(obj).append(htmlStr);

}

Могу ли я как-нибудь вычислить переменную 'action', например

eval('$(obj).' + action + '(' + htmlStr + ')');

Ответы [ 3 ]

4 голосов
/ 04 апреля 2011

Возможно, вы ищете

$(obj)[action](htmlStr)

Слова someobject["something"] и someobject.something эквивалентны в javascript.

2 голосов
/ 04 апреля 2011

Вместо eval вы можете использовать:

$(obj)[action](htmlStr);

Следующие значения эквивалентны:

a.foo
a["foo"]

Поэтому, когда у вас есть что-то вроде:

var property = "foo";

Вы можете сделать:

a[property]

для программного доступа к свойству / методу.

Кроме того, поскольку ваша переменная obj уже является результатом jQuery, вы можете пропустить дополнительные $:

obj[action](htmlStr);
0 голосов
/ 04 апреля 2011

Я думаю, что это должно быть eval('$(obj).' + action + '(htmlStr);');

...