我正在尝试输出一个动态表,这与JQuery
只是为了摆脱"符号,我尝试声明另一个变量:
$rowname = $row["name"];
然后将行名保存在数据泡中,这将被JQuery使用。
echo '<tr id='.$current_row.' data-bubble={"part":"'.$rowname.'"}>';
JQuery部分:
var bubData=jQuery.parseJSON($(this).attr("data-bubble"));
console.log(bubData);
$("#bubbleTable b.part").text(bubData.part);
所以当我有一个'name'条目(NoSpace)里面没有空格时,一切正常:
<tr id="1" data-bubble={"part":"NoSpace"}>
但是每当名称包含空格(Yes space)时,这就是我得到的:Firefox:
<tr id="2" Space"}="" data-bubble={"part":"Yes">
IE: <tr id="2" data-bubble='{"part":"Yes' Space"}="">
一定有一个简单的方法来解决这个问题,但显然我的专业英语没有那么好,我自己找不到。我已经找了很长时间了。我想这不是正确的事情。
您忘记了data-bubble中的双引号,浏览器会以不同的方式解释内容。
我建议你使用printf/sprintf来正确格式化字符串,没有双引号:
printf('<tr id="%d" data-bubble="{'part':'%s'}">', $current_row, $rowname);
输出:<tr id="1" data-bubble="{'part':'Yes Space'}>"
(基于注释)尝试反引号以避免问题:
printf("<tr id='%d' data-bubble='{"part":"%s"}'>", $current_row, $rowname);
输出:<tr id='1' data-bubble='{"part":"Yes Space"}'>
删除tr字符串:
echo '<tr id='.$current_row.' data-bubble="{"part":"'.$rowname.'"}";
在斜杠后使用单引号像‘