首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用jQuery获取所有ID?

如何使用jQuery获取所有ID?
EN

Stack Overflow用户
提问于 2009-05-05 22:55:54
回答 7查看 126.6K关注 0票数 74

我正在尝试收集一个扇区中的in列表(数组)

<div id="mydiv">
 <span id='span1'>
 <span id='span2'>
</div>

$("#mydiv").find("span"); 

给我一个jQuery对象,但不是一个实数组;

我能做到

var array = jQuery.makeArray($("#mydiv").find("span"));

然后使用for循环将id属性放入另一个数组中

或者我可以这样做

$("#mydiv").find("span").each(function(){}); //but i cannot really get the id and assign it to an array that is not with in the scope?(or can I)

无论如何,我只想看看jQuery中是否有这样的速记;

EN

回答 7

Stack Overflow用户

发布于 2009-05-05 23:04:37

.get()方法将从jQuery对象返回一个数组。此外,您还可以在调用get()之前使用.map投影到某个对象。

var idarray = $("#myDiv")
             .find("span") //Find the spans
             .map(function() { return this.id; }) //Project Ids
             .get(); //ToArray
票数 38
EN

Stack Overflow用户

发布于 2009-05-05 23:07:30

我的建议是什么?

var arr = $.map($("#mydiv [id]"), function(n, i) {
  return n.id;
});

您也可以这样做:

var arr = $.map($("#mydiv span"), function(n, i) {

var arr = $.map($("#mydiv span[id]"), function(n, i) {

或者仅仅是:

var arr = $("#mydiv [id]").map(function() {
  return this.id;
});

基本上有很多种方式。

票数 13
EN

Stack Overflow用户

发布于 2009-05-05 23:03:05

我能想到的最好的解决方法就是制作一个自定义的jquery插件来完成这个任务:

jQuery.fn.getIdArray = function() {
  var ret = [];
  $('[id]', this).each(function() {
    ret.push(this.id);
  });
  return ret;
};

然后做像这样的事情

var array = $("#mydiv").getIdArray();
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/827294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档