Javascript jquery中json.stringify中的问题
在javascript代码中,当我调用该函数时,此警报将打印JSON,但它缺少一些值。总共有3个字段(2组),有时它们会这样打印: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(
{"":"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));
});
});