Javascript字符串解析更改斜杠,带空格,无原因
我正在Ajax数据表中生成动作按钮,其中包含来自symfony应用程序的路由,并在javascript函数中显示Twig 下面是javascript函数:Javascript字符串解析更改斜杠,带空格,无原因,javascript,string,parsing,replace,twig,Javascript,String,Parsing,Replace,Twig,我正在Ajax数据表中生成动作按钮,其中包含来自symfony应用程序的路由,并在javascript函数中显示Twig 下面是javascript函数: { data: "id", render: function ( data, type, full, meta ) { var duplicate = "{{ path('duplicate_of', { 'id': 'elementid' }) }}";
{ data: "id",
render: function ( data, type, full, meta ) {
var duplicate = "{{ path('duplicate_of', { 'id': 'elementid' }) }}";
var deleteof = "{{ path('delete_of' , { 'id': 'elementid' }) }}";
var update = "{{ path('updt_of' , { 'id': 'elementid' }) }}";
var detail = "{{ path('detail_of' , { 'id': 'elementid' }) }}";
var exportof = "{{ path('export_of' , { 'id': 'elementid' }) }}";
console.log(detail);
console.log(data);
return "<a class='pr5' title='Détail' onClick='"+detail.replace("elementid", data) +"'><i class='fa fa-search' aria-hidden='true'></i></a>"+
"<a class='pr5' title='Dupliquer' href='"+duplicate .replace("elementid", data) +"'><i class='fa fa-files-o' aria-hidden='true'></i></a>"+
"<a class='pr5' title='Exporter' href='"+exportof .replace("elementid", data) +"'><i class='fa fa-file-excel-o' aria-hidden='true'></i></a>"+
"<a class='pr10' title='Modifier' href='"+update .replace("elementid", data) +"'><i class='fa fa-pencil' aria-hidden='true'></i></a>"+
"<a class='pr5 red' title='Supprimer' href='"+deleteof .replace("elementid", data) +"'><i class='fa fa-times' aria-hidden='true'></i></a>"
;
}
}
实际问题:
第二行对我来说是openModal('/backend/web/app_dev.php/fr/of/elementid/detail')
,之后,我只需要用数据中包含的实际id替换元素id
。这就是部分:detail.replace(“elementid”,data)
,但是这个步骤看起来是错误的
我不明白我做错了什么。。。有人有想法吗;医生:
将.replace(“'”、“';”)添加到详细信息的末尾。replace(“elementid”,data)
(或详细信息。replace(“elementid”,data)。replace(“,”/”)
)
说明:
因为detail
是openModal('/backend/web/app_dev.php/fr/of/39/detail')代码>(如控制台中所示),返回语句的第一行,即:
return "<a class='pr5' title='Détail' onClick='"+detail.replace("elementid", data).replace(" ", "/") +"'><i class='fa fa-search' aria-hidden='true'></i></a>"+
您看到值中有两个“
字符了吗?这就是造成属性混乱的原因。将其替换为'
,它是“
字符的HTML实体(请参阅)。所以当你有这个(注意我添加了.replace(“'”,“';”)
)时:
return“非常有效。谢谢你,伙计。也谢谢你的解释,我不会再犯同样的错误了
<td>
<a class="pr5" title="Détail" onclick="openModal(" backend="" web="" app_dev.php="" fr="" of="" 39="" detail');'="">
<i class="fa fa-search" aria-hidden="true"></i>
</a>
<a class="pr5" title="Dupliquer" href="/backend/web/app_dev.php/fr/of/39/duplicate">
<i class="fa fa-files-o" aria-hidden="true"></i>
</a>
<a class="pr5" title="Exporter" href="/backend/web/app_dev.php/fr/of/39/export">
<i class="fa fa-file-excel-o" aria-hidden="true"></i>
</a>
<a class="pr10" title="Modifier" href="/backend/web/app_dev.php/fr/of/39/update">
<i class="fa fa-pencil" aria-hidden="true"></i>
</a>
<a class="pr5 red" title="Supprimer" href="/backend/web/app_dev.php/fr/of/39/delete">
<i class="fa fa-times" aria-hidden="true"></i>
</a>
</td>
/backend/web/app_dev.php/fr/of/elementid/detail
openModal('/backend/web/app_dev.php/fr/of/elementid/detail');
return "<a class='pr5' title='Détail' onClick='"+detail.replace("elementid", data).replace(" ", "/") +"'><i class='fa fa-search' aria-hidden='true'></i></a>"+
<a class='pr5' title='Détail' onClick='openModal('/backend/web/app_dev.php/fr/of/39/detail');'><i class='fa fa-search' aria-hidden='true'></i></a>
onClick='openModal('/backend/web/app_dev.php/fr/of/39/detail');'
return "<a class='pr5' title='Détail' onClick='"+detail.replace("elementid", data).replace(" ", "/").replace("'", "'") +"'><i class='fa fa-search' aria-hidden='true'></i></a>"+
<a class='pr5' title='Détail' onClick='openModal('/backend/web/app_dev.php/fr/of/39/detail');'><i class='fa fa-search' aria-hidden='true'></i></a>