修改jQuery load目标路径为变量拼接格式后失效问题咨询
问题:jQuery load方法修改目标路径后无法正常工作?
你原本的jQuery代码可以正常运行:
<script> $(document).ready(function() { $(".first").click(function(){ var str=$(this).attr("value"); $(".sencond").hide(); $("#shows").html("wait ... "); $("#shows").show(); $("#shows").load('load.php?str='+str); }) }) </script>
但当你把加载目标改成$("#shows").load("'+str+'.php");后就失效了,问题出在字符串拼接的引号使用错误上。
错误原因
你写的"'+str+'.php"会被JavaScript解析成一个字面量字符串:'+str+'.php,而不是把变量str的值和.php拼接起来。简单说就是你多套了一层不必要的单引号,导致变量没有被正确解析。
两种正确的写法
1. 基础字符串拼接
直接用+把变量和.php字符串拼接即可,和你原来正确的写法逻辑一致:
$("#shows").load(str + '.php');
2. ES6模板字符串(更简洁)
用反引号包裹字符串,变量放在${}里,可读性更好:
$("#shows").load(`${str}.php`);
这样修改后,load方法就能正确根据str的值加载对应的PHP文件啦~
内容的提问来源于stack exchange,提问作者LamSam
相关产品推荐
相关产品推荐

