Да, разрядное смещение используется во встроенном программном обеспечении низкого уровня все время. Это может также использоваться в качестве почти волшебного приема, чтобы выполнить чрезвычайно быстрые математические операции, взглянуть на телефон
http://betterexplained.com/articles/understanding-quakes-fast-inverse-square-root/
Не забывайте "старомодный" getElementById - он не требует хеширования идентификаторов. Затем просто загрузите узлы в jQuery, чтобы получить объект jQuery:
var ids = ['jq-primarySearch', 'jq-n-CSS'];
var nodes = $.map( ids, function(i) { return document.getElementById(i) } );
var jqObj = $(nodes);
Вы можете просто присоединиться к ним, например:
var ids = ['div1', 'div2', 'div3'];
$('#' + ids.join(',#')).click(function() { alert('hi'); });
(NB - я не пробовал - это не в моей голове )
Допустим, ваш массив - «arr».
Не могли бы вы сопоставить свой массив строковых идентификаторов с массивом объектов jQuery, а затем объединить их все с помощью обычного селектора jQuery?
$($.map(arr, function(id) { return $('#' + id); }))
В jQuery вы можете выбрать по ID, например
$("[id=id_value]"); // returns 1 id
, если вы назовете их как-то вроде id_1 и id_2, вы можете сделать это
$("[id^='id_]") // returns multiple
Просто сделайте выбор узла самостоятельно, а затем оберните результат:
$(document.getElementById(id))
сохраняет создание строкового селектора, который jQuery должен будет только проанализировать, а затем сделать то же самое. Кроме того, вам не нужно беспокоиться об экранировании таких символов, как «:» и «». которые действительны в идентификаторах, но означают что-то другое в селекторах.
Если у вас есть идентификатор в виде строки, вы можете выбрать его в jQuery следующим образом
$("#"+id); //gives you one element
Если у вас есть несколько похожих идентификаторов, используйте предложение Эльзо.