Jquery 获取锚点ID并转换为JavaScript数组
如何使用jQuery获取特定div中锚的所有id,并将它们转换为一个数组以传递load/get方法 HTML将采用以下格式:Jquery 获取锚点ID并转换为JavaScript数组,jquery,load,Jquery,Load,如何使用jQuery获取特定div中锚的所有id,并将它们转换为一个数组以传递load/get方法 HTML将采用以下格式: <div id="a div id"> <div style="some styling"> <span><a href="" id="the_id_1"/></span> <span><a href="" id="the_id_2"/></span&g
<div id="a div id">
<div style="some styling">
<span><a href="" id="the_id_1"/></span>
<span><a href="" id="the_id_2"/></span>
<span><a href="" id="the_id_3"/></span>
</div>
</div>
像这样的方法应该会奏效:
var anchors = [];
$('#a_div_id a').each(function() {
// `this` is the actual `a` element
if (a.id) {
anchors.push(a.id);
}
});
选择器“#a#u div_id a”(注意,我对id做了一些修改,使其能够工作;id中不允许有空格用于选择器)查找所有
a
元素,这些元素是id为“a#div_id”的元素的后代。jQuery的循环通过它们,每次调用迭代器函数设置this
到实际的a
元素(不是它的jQuery对象)。从a
元素实例中,您可以查询id
属性,该属性反映了id
属性。类似的操作应该可以:
var anchors = [];
$('#a_div_id a').each(function() {
// `this` is the actual `a` element
if (a.id) {
anchors.push(a.id);
}
});
选择器“#a#u div_id a”(注意,我对id做了一些修改,使其能够工作;id中不允许有空格用于选择器)查找所有a
元素,这些元素是id为“a#div_id”的元素的后代。jQuery的循环通过它们,每次调用迭代器函数设置this
到实际的a
元素(不是它的jQuery对象)。从a
元素实例,您可以查询id
属性,该属性反映了id
属性。类似于,但使用该函数创建一个包含所有id的新jQuery对象,然后从该对象获取一个普通数组:
var anchors = $('#a_div_id a').map(function () { return this.id; }).get();
要以
id\u 1
,id\u 2
的格式从id中获取数字,您可以使用我最喜欢的技术之一-拆分和弹出:
var anchors = $('#a_div_id a').map(function () {
return this.id.split("_").pop();
}).get();
此技术将字符串在每个\uu
处拆分为一个数组。pop()方法删除并返回数组的最后一项,在本例中,它就是数字。如果需要数组的不同部分,可以直接引用项的索引。
如果您的
id
稍有不同,则正则表达式可能比拆分更好。您当前拥有的是返回此.id.match(/\d+$/)代码>,这很好,只是match()返回一个数组,因此您需要访问该数组的第一个元素以检索完整匹配:
return this.id.match(/\d+$/)[0];
请注意,如果没有成功匹配,这将引发错误,因此最好将匹配存储到变量:
var match = this.id.match(/\d+$/);
return match ? match[0] : null;
类似于,但使用该函数创建包含所有ID的新jQuery对象,然后从该对象获取普通数组:
var anchors = $('#a_div_id a').map(function () { return this.id; }).get();
要以id\u 1
,id\u 2
的格式从id中获取数字,您可以使用我最喜欢的技术之一-拆分和弹出:
var anchors = $('#a_div_id a').map(function () {
return this.id.split("_").pop();
}).get();
此技术将字符串在每个\uu
处拆分为一个数组。pop()方法删除并返回数组的最后一项,在本例中,它就是数字。如果需要数组的不同部分,可以直接引用项的索引。
如果您的id
稍有不同,则正则表达式可能比拆分更好。您当前拥有的是返回此.id.match(/\d+$/)代码>,这很好,只是match()返回一个数组,因此您需要访问该数组的第一个元素以检索完整匹配:
return this.id.match(/\d+$/)[0];
请注意,如果没有成功匹配,这将引发错误,因此最好将匹配存储到变量:
var match = this.id.match(/\d+$/);
return match ? match[0] : null;
函数get_all_idz(){
var array_idz=新数组();
变量总计=$(“.row_id”).length;
对于(a=0;a函数get_all_idz(){
var array_idz=新数组();
变量总计=$(“.row_id”).length;
对于(a=0;aMy锚id是记录id的字母数字表示,例如“the_id_1_”1将是记录id。我如何才能只将其导入数组中。我喜欢这两种方法,但Andy E yours似乎不太像一个脚印。@用户:我已经用一个示例更新了我的答案,说明了如何只为您获取数字。@用户:在这里获取NaN
是没有意义的,这段代码中没有包含数字操作。是吗你确定id的格式是the_id_1
?啊,我明白了,所以理论上没有返回任何内容。我添加了return match?语句,因为最初我的函数不会返回任何内容。我通过将链接指向我已经存在的特定类修复了这个问题。我的锚id是记录的字母数字表示id,例如“the_id_1_”1将是记录id。我如何才能只将其导入数组中。我喜欢这两种方法,但Andy E yours似乎不太像一个脚印。@用户:我已经用一个示例更新了我的答案,说明了如何只为您获取数字。@用户:在这里获取NaN
是没有意义的,这段代码中没有包含数字操作。是吗你确定id的格式是the_id_1
?啊,我明白了,所以理论上没有返回任何内容。我添加了return match?语句,因为最初我的函数不会返回任何内容。我通过将链接指向一个我已经存在的特定类修复了这个问题。+1,我相当肯定这会比map()快一点如果速度是一个问题。@Andy E:(我知道你丢了“头”——动作不错;))干杯。当然,如果速度真的是一个问题,你也会想把每个都丢出来,然后使用一个无聊的循环。:-+1,我相当肯定如果速度是一个问题,这会比map()快一点。@Andy E:(我知道你丢了“头”--干得好。;)干杯。当然,如果速度真的是一个问题,你也应该把每个都去掉,使用一个无聊的循环。:-)你应该注意
会导致错误(至少在Firefox上是这样),您应该将其更改为
。抱歉,这不是代码的副本,我手动键入了它。您应该注意
会导致错误(至少在Firefox上),您应该将其更改为
。抱歉,这不是c