Массив идентификаторов - как выбрать с помощью JavaScript/JQuery?

У меня есть массив идентификаторов элементов, возвращающийся с некоторой проверки на стороне сервера. Идентификаторы не имеют префикса '#'. Вместо того, чтобы проходить через массив и префикС# для каждого члена, существует ли способ jquery для прямого выбора всех элементов по их идентификаторам?

Ответ 1

Не забывайте "старомодный" getElementById - он не требует хэширования идентификаторов. Затем просто загрузите узлы в jQuery, чтобы получить объект jQuery:

var ids = ['jq-primarySearch', 'jq-n-CSS'];
var nodes = $.map( ids, function(i) { return document.getElementById(i) } );
var jqObj = $(nodes);

Ответ 2

Вы можете просто присоединиться к ним, например:

var ids = ['div1', 'div2', 'div3'];

$('#' + ids.join(',#')).click(function() { alert('hi'); });

Ответ 3

(NB - я не пробовал это - это не в моей голове)

Скажем, ваш массив "arr".

Не могли бы вы отобразить массив идентификаторов строк в массив объектов jQuery, а затем объединить их все с помощью обычного селектора jQuery?

$($.map(arr, function(id) { return $('#' + id); }))

Ответ 4

В jQuery вы можете выбрать по ID, например,

$("[id=id_value]"); // returns 1 id

если вы назовете им что-то вроде id_1 и id_2, вы можете сделать это

$("[id^='id_]") // returns multiple 

Ответ 5

Просто сделайте выбор node самостоятельно, затем оберните результат:

$(document.getElementById(id))

сохраняет конструкцию селектора строк, который jQuery должен будет только проанализировать, а затем сделать то же самое. Кроме того, вам не нужно беспокоиться об экранировании персонажей вроде ": и". которые действительны в идентификаторах, но означают что-то еще в селекторах.

Ответ 6

Если у вас есть идентификатор в виде строки, вы можете выбрать его в jQuery, например,

$("#"+id); //gives you one element

Если у вас несколько ID, которые похожи, используйте предложение Elzo.