我有这样的结构
<div id-"form-input">
<div id="form1"></div>
<div id="form2"></div>
<div id="form3"></div>
<div id="form4"></div>
</div>
我想得到一些表格,比如1
,2
。。。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);
});