2012-09-20 44 views
2

如果我有一个<div>已经在它的可变因素,每一个不同的id,这是第一位的 - 因此,例如,三张影像id小号1,23 - 我该如何编写一个函数来获取这些id,然后将它们全部以整数形式而不是字符串形式导出?获取元素的ID,然后将它们组合成一个整数

目前我有一个函数可以抓取id并导出它们,但是有一个问题。说我把id s 1,23三个图像放到<div>。当它输出id s并进入数据库时​​,我没有得到123的条目;我得到1,2或3.我想这是因为该功能将其导出为1,2,3而不是123。谁能帮忙?

我的代码(其中#div是父<div>children都与id就是我要收集的元素):

$("#submit").click(function() { 
    $("#div").children().each(function(n, i) { 
     var boxid = this.id; 
     // Do something with the ids 
    }); 
}); 

回答

0

如果你想要得到的结果作为123的整数,则可以使用map方法,然后join结果。如果你需要的是一个实际的INT,使用parseInt函数

var idString = $("#div").children().map(function(){ 
    return this.id; 
}).get().join(""); 

$("#submit").click(function() { 
    var boxid = $("#div").children().map(function() { 
      return this.id; 
    }).get().join('') 

    boxid = Number(boxid) 
}); 

http://jsfiddle.net/rEfXb/

+0

它完美的工作!谢谢大家,接受这个简单的原因。 – user1686689

1

你真的不应该使用数字作为ID,但如果你是,

$("#submit").click(function() { 
    var sum = 0; 
    $("#div").children().each(function(n, i) { 
     var boxid = this.id; 
     sum += boxid; 
    }); 
}); 
+0

这将返回'6'而不是'123' –

+0

是的,如果我没有记错,那么根据标准,以数字开头的ID是无效的。 –

+0

@VijayDev在HTML5中可以是任何字符 –

0

您可以使用以下。否则,你可以使用字符串。

var idInt = parseInt(idString,10); 

但是要注意,数字id s为之前没有有效的HTML 5

0

你可以使用reduce为:)

假设我们有这样的html:

<div id="outer"> 
    <div id="1"></div> 
    <div id="2"></div> 
    <div id="3"></div> 
    <div id="4"></div> 
</div>​ 

然后您可以使用此代码:

jQuery('#outer > *').toArray().reduce(function(value, elem) { 
    return value + elem.id 
}, '')​​​​ 
// => '1234' 
相关问题