从使用javascript开始获取并保存所有id



我有这样的结构

<div id-"form-input">
   <div id="form1"></div>
   <div id="form2"></div>
   <div id="form3"></div>
   <div id="form4"></div>
</div>

我想得到一些表格,比如12。。。n。我尝试使用这个代码只是为了获得所有的id

var num = new Array();
var elems = $('div[id^=form]');
for (var i=0; i<elems.length; i++) {
   alert(elems[i]);
   num.push(elems[i]);
}
alert(num);

但它返回[object HTMLdivElement]。怎么了?我怎么能只得到号码?

使用如下map()方法。

var num = $('div[id^=form]').map(function() {
    var id = this.id.split('form')[1];
    if(!isNaN(id))
        return +id; // + to convert string to num
}).get();
alert(num);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id-"form-input">
   <div id="form1"></div>
   <div id="form2"></div>
   <div id="form3"></div>
   <div id="form4"></div>
</div>

如果你只想要数字,那么

更换

num.push(elems[i]);

通过

num.push(i+1);

如果你想要总id,那么正如@satpal所建议的

num.push(elems[i].id);

您需要从id属性中提取数字,因此使用

num.push(elems[i].id.replace(/D/g, ''));

而不是

num.push(elems[i]);

var num = new Array();
var elems = $('#form-input div[id^=form]');
for (var i = 0; i < elems.length; i++) {
  num.push(elems[i].id.replace(/D/g, ''));
}
console.log(num);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="form-input">
  <div id="form1"></div>
  <div id="form2"></div>
  <div id="form3"></div>
  <div id="form4"></div>
</div>

如果您想获取id,请使用map()

$('#form-input > div').map(function() {
       console.log(this.id);
});

最新更新