获取div中的元素ID,然后将它们组合成一个整数

时间:2012-09-20 17:01:33

标签: javascript jquery mysql

如果我有一个<div>,其中包含可变元素,每个元素都有一个不同的id,这是一个数字 - 例如,三个图像带有id s {{ 1}},12 - 如何编写一个函数来获取这些3然后将它们作为整数而不是字符串一起导出?

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

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

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

4 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

如果您想将结果设为123整数,可以使用map方法,然后使用join结果。

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

    boxid = Number(boxid)
});

http://jsfiddle.net/rEfXb/

答案 2 :(得分:0)

您可以使用以下内容:

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

如果您需要它是一个实际的int,请使用parseInt。否则,您只需使用字符串。

var idInt = parseInt(idString,10);

但请注意,数字id在html 5之前无效。

答案 3 :(得分: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'