ID数组 – 如何使用JavaScript / JQuery进行选择?

我有一个元素标识符数组,从一些服务器端validation返回。 ID不以“#”为前缀。 是不是通过数组并为每个成员添加前缀#,是否有jquery方法直接按ID分配所有元素?

难道你不忘记“老式”getElementById – 它不需要散列ID。 然后只需将节点提供给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'); }); 

(注意 – 我没试过这个 – 这不是我的头脑)

假设您的数组是“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只需要重新解析,然后执行完全相同的操作。 另外,您不必担心转义“:”和“。”之类的字符。 哪些在ID中有效,但在选择器中表示其他内容。

如果您将ID作为字符串,则可以在jQuery中选择它

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

如果您有多个相似的ID,请使用Elzo的建议。