使用jquery获取html元素的id

时间:2010-08-03 09:05:41

标签: jquery ajax

我需要从表单中获取postdata并发送它   通过ajax      代码如下:

var $fields = $('#myform :input').serializeArray();
var values = {} 
jQuery.each($fields, function(i, field)
{

                   values[field.name]  = field.value

 });
 myJson = JSON.stringify(values);

现在,我想要的是values[field.name]而不是values[$(this).attr('id')] = field.value 要发送的后期数据的关键。我试过{{1}}但是, 它不起作用。任何帮助都是有价值的

4 个答案:

答案 0 :(得分:1)

而不是

var $fields = $('#myform :input').serializeArray();

这样做

var $fields = $('#myform :input').map(function(){
   return {'id': this.id, 'value': this.value}
}).get();

并注意$变量上的$fields

答案 1 :(得分:0)

你也可以这样做

var values = {} 
$('#myform :input').each(index){
   values[$(this).attr('name')]=$(this).attr('id')
}
 myJson = JSON.stringify(values);

答案 2 :(得分:0)

不要序列化阵列。我猜你会删除dom-elements的属性。

请尝试使用:

var values = new Array(); 

//this way you'll get an array of DOM-elements with all their properties
jQuery('#myform :input').each(function(){
    $this = jQuery(this); //I do this to make the later code more readable, can be omitted

    values[$this.attr('id')] = $this.val();
});

答案 3 :(得分:0)

您可以使用以下内容:

    var values = {};
    $("#myform :input").each(function(i, field) {
          values[field.id] = field.value;

    });

    var str = (JSON.stringify(values));