jQuery - 返回值将模式匹配到数组

时间:2010-09-21 15:38:55

标签: php jquery arrays

我的表单有几个动态添加的<p>个元素。这就是人们的样子:

<p id="numbox-1" class="numbox">1</p>

我需要设置一个函数,这样当单击一个按钮时,我得到id(id将被标记为numbox-1,numbox-2等),并且所有这些都是p元素的值。页。

我需要将值传递给将处理它们的php脚本,如果我可以将数据作为数组获取,那将是很好的,所以我可以在php中使用for循环。

我一直在使用JSON传递数据,但我不确定这是否是最好的方法,请指教,谢谢 -

3 个答案:

答案 0 :(得分:4)

您可以使用.map(),例如:

var arr = $('.numbox').map(function(){
            return { name: this.id, value: this.innerHTML };
          });

然后您可以将其作为data参数传递,例如:

$.post("mypage.php", arr);

这将导致名称/值对的POST,如下所示:

numbox-1=1&numbox-2=XX....

答案 1 :(得分:0)

我不确定“检查”按钮的含义,但也许这会有所帮助。

$(function(){
  $("#send-button").click(function(){
    var data = [];
    $('.numbox').each(function(){
      var $this = $(this);
      data.push( {
        id: $this.attr('id'),
        value: $this.html()
      } );
    });
    $.post('myurl.php', { numboxes: data });
  });
});

单击#send-button时,它会创建一个返回数组,其中包含每个numbox id和value的对象。然后它将该数组发布到服务器。

答案 2 :(得分:0)

function getNumbox()
{
    var objNumbox = new Array();
    $('.numbox').each(function(index){
        objNumbox[index] = $(this);
    });
    return objNumbox;
}

//Test it out
$(document).ready(function(){
    var test = getNumbox();
    $(test).each(function(index){
        alert('ID: ' + $(test[index]).attr('id') + ' Text: ' + $(test[index]).text());
    });
});