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

时间:2009-09-14 10:19:18

标签: jquery css-selectors

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

6 个答案:

答案 0 :(得分:21)

你可以加入他们,就像这样:

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

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

答案 1 :(得分:13)

你不要忘记“老式”getElementById - 它不需要散列ID。然后只需将节点提供给jQuery以获取jQuery对象:

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

答案 2 :(得分:4)

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

假设您的数组是“arr”。

你不能将你的字符串标识符数组映射到jQuery对象数组中,然后使用通常的jQuery选择器将它们全部连接起来吗?

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

答案 3 :(得分:3)

在jQuery中,你可以像这样选择ID

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

如果您将其命名为id_1和id_2,则可以执行此操作

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

答案 4 :(得分:1)

只需自己选择节点然后包装结果:

$(document.getElementById(id))

保存构造一个字符串选择器,jQuery只需要重新解析然后执行完全相同的操作。另外,您不必担心转义字符,例如':'和'。',这些字符在ID中有效,但在选择器中表示其他内容。

答案 5 :(得分:0)

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

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

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