Javascript jquery中json.stringify中的问题

Javascript jquery中json.stringify中的问题,javascript,jquery,json,Javascript,Jquery,Json,在javascript代码中,当我调用该函数时,此警报将打印JSON,但它缺少一些值。总共有3个字段(2组),有时它们会这样打印: {"":"01bce391-d3a2-4582-8e53-6a45bb583284","cast":"07392eb1-c356-4760-8f4c- 62ff164ca721"} 或 柜台: var counteradd=4; $("#getButton").click(function () { var jsonadd = {}; for(

在javascript代码中,当我调用该函数时,此警报将打印JSON,但它缺少一些值。总共有3个字段(2组),有时它们会这样打印:

{"":"01bce391-d3a2-4582-8e53-6a45bb583284","cast":"07392eb1-c356-4760-8f4c-  
62ff164ca721"}

柜台:

var counteradd=4;
$("#getButton").click(function () {
    var jsonadd = {};
    for(i=1; i<counteradd;i++) {
        jsonadd[$('#textboxadd' + i).val()] = $('#searchaddid' + i).val();
        alert('#searchaddid' + i);
        alert($('#searchaddid' + i).val());
    }

    alert(JSON.stringify(jsonadd));
});
var counteradd=4;
$(“#获取按钮”)。单击(函数(){
var jsonadd={};

对于(i=1;i我不确定您在这里到底想做什么,但为了让它正常工作,我需要修复一些bug:

  • 在代码末尾添加一个额外的括号和圆括号
  • newTextBoxDivcast.after().html(
    更改为
    newTextBoxDivcast.append(
    $.after()
    函数将创建一个新元素作为该对象的同级元素,然后将其忘记。然后
    $.html()
    将用插入的内容替换当前对象的html
  • 更改定义jsoncastadd对象的行,使其值来自
    $(''secastadd'+i)
    。在此处的代码中,
    $('searchCastadd'+i)
    始终为空且从不被触及
  • 将jQuery作为外部资源添加到您提供的fiddle中
出现问题的一个原因是如果同一个键被多次使用。例如,
jsoncastadd[“blah”]=5
jsoncastadd[“blah”]=6
最终只剩下
{“blah”:“6”}

下面是我得出的结果代码:

$(document).ready(function(){
    var countercastadd=1;
    $(document).on('click', '.removebtnaddcast', function() {
        var finalremadd = $(this).attr("id").match(/\d+/);
        alert(finalremadd);
        $('#searchcastaddid'+ finalremadd).attr('value','');
        $('#textboxcastadd'+ finalremadd).val("");
        $('#secastadd'+ finalremadd).val("");
    });
    $("#addc").click(function () {
        var newTextBoxDivcast = $(document.createElement('div'))
        .attr("id", 'TextBoxDivcast' + countercastadd);
        newTextBoxDivcast.append(' <input type="text" placeholder="Search" name="searchcastadd' + countercastadd +
            '" id="secastadd' + countercastadd + '" value=""> <input type="text" placeholder="Cast" name="Castadd' + countercastadd +
            '" id="textboxcastadd' + countercastadd + '" value="" > <input type="button" id="removebtnaddcast' + countercastadd +
            '" class="removebtnaddcast" value="-" > <input type="hidden"  name="searchcastaddid' + countercastadd +
            '" id="searchcastaddid' + countercastadd + '" value="" >');
        newTextBoxDivcast.appendTo("#TextBoxesGroup1");
        countercastadd++;
        //alert(countercastadd);
    });
    $("#getButton").click(function () {
        var jsoncastadd = {};
        for(i=1; i<countercastadd;i++)
            jsoncastadd[$('#textboxcastadd' + i).val()] = $('#secastadd' + i).val();
        alert(JSON.stringify(jsoncastadd));
    });
});
$(文档).ready(函数(){
var=1;
$(文档).on('click','removebtnadcast',函数(){
var finalremadd=$(this.attr(“id”).match(/\d+/);
警报(最终警报);
$('searchcastaddid'+finalremadd.attr('value','');
$('#textboxcastadd'+finalremadd).val(“”);
$('secastadd'+finalremadd).val(“”);
});
$(“#addc”)。单击(函数(){
var newTextBoxDivcast=$(document.createElement('div'))
.attr(“id”,“TextBoxDivcast”+countercastadd);
newTextBoxDivcast.append(“”);
newTextBoxDivcast.appendTo(“#textboxsgroup1”);
countercastadd++;
//警报(反卡斯特添加);
});
$(“#获取按钮”)。单击(函数(){
var jsoncastadd={};

对于(i=1;i这是什么??
var=counteradd=4;
这就像是
var counteradd=4
这是一个语法错误。我不确定这是怎么发生的。John-请将代码发布到。我想是选择器$(“#textboxadd”+i).val()是不正确的。你可以找到它…你能给我们剩下的代码吗?html等?甚至可以在www.jsfiddle.net上找到它?这里是小提琴
$(document).ready(function(){
    var countercastadd=1;
    $(document).on('click', '.removebtnaddcast', function() {
        var finalremadd = $(this).attr("id").match(/\d+/);
        alert(finalremadd);
        $('#searchcastaddid'+ finalremadd).attr('value','');
        $('#textboxcastadd'+ finalremadd).val("");
        $('#secastadd'+ finalremadd).val("");
    });
    $("#addc").click(function () {
        var newTextBoxDivcast = $(document.createElement('div'))
        .attr("id", 'TextBoxDivcast' + countercastadd);
        newTextBoxDivcast.append(' <input type="text" placeholder="Search" name="searchcastadd' + countercastadd +
            '" id="secastadd' + countercastadd + '" value=""> <input type="text" placeholder="Cast" name="Castadd' + countercastadd +
            '" id="textboxcastadd' + countercastadd + '" value="" > <input type="button" id="removebtnaddcast' + countercastadd +
            '" class="removebtnaddcast" value="-" > <input type="hidden"  name="searchcastaddid' + countercastadd +
            '" id="searchcastaddid' + countercastadd + '" value="" >');
        newTextBoxDivcast.appendTo("#TextBoxesGroup1");
        countercastadd++;
        //alert(countercastadd);
    });
    $("#getButton").click(function () {
        var jsoncastadd = {};
        for(i=1; i<countercastadd;i++)
            jsoncastadd[$('#textboxcastadd' + i).val()] = $('#secastadd' + i).val();
        alert(JSON.stringify(jsoncastadd));
    });
});