18910140161

JavaScript-浏览器将空格转换为JSON字符串的HTML属性-堆栈溢出

顺晟科技

2022-10-18 13:58:47

90

我在其中创建动态表行和tds。在最后一个TD中,我需要使用带有var str_data = JSON.stringify(data); var submit_type_text = $(form).find('button[type=submit]').text(); var tbl_id = main_form_id.replace('tabform', '')+'table'; var last_tr = $('#'+tbl_id).children('tbody').children('tr:last'); var last_tr_no_plus_one = parseInt($(last_tr).children('td:first').text())+1; var actions = '<a href="#" data-toggle="modal" data-target="a'+last_tr_no_plus_one +'"onclick=show_detail_modal('+str_data+') style="color: inherit;"><i class="far fa-eye fa-sm"></i></a>&nbsp;'; var last_td_of_last_tr = actions; var inputs = $(form).find('.input'); var tr_and_tds = '<tr>'; tr_and_tds += '<td>'+last_tr_no_plus_one+'</td>'; $.each(inputs, function(a, b){ tr_and_tds += '<td>'+$(b).val()+'</td>'; }); tr_and_tds += '<td>'; tr_and_tds += last_td_of_last_tr; tr_and_tds += '</td>'; tr_and_tds += '</tr>'; $('#'+tbl_id).append(tr_and_tds); 事件的锚标记,将一些数据作为JSON字符串传递。它工作得很好,除非我为JSON字符串的任何值提供空格,否则它会将所有剩余的数据转换为空格后的HTML属性。我正在使用JSON.stringify(data),但感觉它没有将其转换为真正的字符串。我不知道!

即使值中有空格作为键,并且值是表单数据,HTML中表行的

最后一个TD也可以正常工作。我在onclick函数

中使用echo json_encode
<代码><;a href=";#";数据切换=“模式”数据目标=";一个{{$I}}";onclick='显示_详细信息_模式(JSON.stringify(<;?PHP回显JSON_编码($data);?>;))'<;I类=";远FA-EYE FA-SM";>;<;/I>;<;/a>;
<a href="#" data-toggle="modal" data-target="a{{$i}}" 
onclick='show_detail_modal(JSON.stringify(<?php echo json_encode($data);?>))' 
<i class="far fa-eye fa-sm"></i>
</a>

enter image description here

请注意,在New York中的空格之后,它将其余数据转换为属性。


顺晟科技:

var str_data = JSON.stringify(data); var submit_type_text = $(form).find('button[type=submit]').text(); var tbl_id = main_form_id.replace('tabform', '')+'table'; var last_tr = $('#'+tbl_id).children('tbody').children('tr:last'); var last_tr_no_plus_one = parseInt($(last_tr).children('td:first').text())+1; var actions = '<a href="#" data-toggle="modal" data-target="a'+last_tr_no_plus_one +'"onclick=show_detail_modal('+str_data+') style="color: inherit;"><i class="far fa-eye fa-sm"></i></a>&nbsp;'; var last_td_of_last_tr = actions; var inputs = $(form).find('.input'); var tr_and_tds = '<tr>'; tr_and_tds += '<td>'+last_tr_no_plus_one+'</td>'; $.each(inputs, function(a, b){ tr_and_tds += '<td>'+$(b).val()+'</td>'; }); tr_and_tds += '<td>'; tr_and_tds += last_td_of_last_tr; tr_and_tds += '</td>'; tr_and_tds += '</tr>'; $('#'+tbl_id).append(tr_and_tds); 属性两边

加上单引号,因为JSON使用双引号。就像您在PHP代码中所做的一样。

使用模板文字可以更容易地将变量替换为字符串。

onclick

请注意,如果var actions = `<a href="#" data-toggle="modal" data-target="a${last_tr_no_plus_one}" onclick='show_detail_modal(JSON.stringify(${str_data}))' style="color: inherit;"><i class="far fa-eye fa-sm"></i></a>&nbsp;`; 包含单引号,这将不起作用。

  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航