Jquery 获取锚点ID并转换为JavaScript数组

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

如何使用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>
      <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