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的建议。