Вам нужно будет использовать String.toString()
, чтобы получить значение String
объекта.
Не ясно, зачем вам нужен массив селекторов, но вот два решения;
Ваше решение использует String.toString()
;
// Array of strings to be used as element selectors.
var selectors = ['#element1', '#element2'];
// Using $.each()
$.each(selectors, function() {
// String.toString() returns the value of the String object.
var $this = $(this.toString());
$this.click(function () {
console.log('Clicked element(1) =', this.id || this); // DEBUG
});
});
Альтернативное решение с использованием String.join()
;
// Using String.join()
$(selectors.join(',')).click(function(event) {
event.preventDefault(); // This is to not follow the link
// Notice that "this" now referes to the current/clicked element
// and not any string value from the "selectors" array.
console.log('Clicked element(2) =', this.id || this); // DEBUG
});
1021 *
См. Мое демо .
Если вам не нужен массив селекторов, я бы порекомендовал простой множественный селектор , например так;
$('#element1, #element2').click(function() { ... });