У меня есть массив идентификаторов элементов, возвращающийся с некоторой проверки на стороне сервера. Идентификаторы не имеют префикса '#'. Вместо того, чтобы проходить через массив и префикС# для каждого члена, существует ли способ jquery для прямого выбора всех элементов по их идентификаторам?
Массив идентификаторов - как выбрать с помощью JavaScript/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.