就像上面的标题:如何在JQuery中连接两个字符串?
到目前为止,这是我的代码:
$(document).ready(function(){
serviceName = '<?=$_GET['services'] . ".php";?>';
serviceID='<?= "#" .$_GET['services'];?>';
serviceClass = '<?=$_GET['services'];?>';
if (serviceName != "") {
alert(serviceID);
$('.main_content').load(serviceName);
$(serviceID).addClass("it");
}
});
正如您在上面的代码中看到的,在变量名serviceID
中,我连接hashtag
和我的GET
值,我尝试将其置于ALERT上,结果是正确的,但当我将其分配给.addClass
时,它无效。
非常感谢任何替代方案和解决方案。
答案 0 :(得分:11)
我想你的意思是在到达客户端之前应该评估PHP代码,因此你的代码语法是正确的,但是看看下面看起来更清晰,也没有污染全局JavaScript范围(这是什么var ...适用于:
var serviceClass = '<?="{$_GET["services"]}";?>';
var serviceName = serviceClass+'.php';
var serviceId = '#'+serviceClass;
但是,由于您的代码语法是正确的,因此您应该在执行时确认实际上有一个带有serviceId的元素作为id
if (($(serviceId)||[]).length) {
alert('your element with the id:'+serviceClass+' exists');
}
else {
alert('your element with the id:'+serviceClass+' doesn\'t exists');
}
答案 1 :(得分:3)
我希望这个解决问题:
<script>
$(document).ready(function(){
serviceName = '<? echo "./".$_GET["services"].".php";?>';
serviceID = '<? echo "#" .$_GET["services"]; ?>';
serviceClass ='<? echo $_GET["services"]; ?>';
console.log(serviceID);
if(serviceName!=""){
alert(serviceID);
$('.main_content').load(serviceName);
$(serviceID).addClass("it");
}
});
</script>
还要检查浏览器中的控制台(firebug或chrome开发人员工具)以查看输出,符合您的标准
答案 2 :(得分:0)
尝试但不确定,我的更改是在jquery
中附加"#"
ID
<script>
$(document).ready(function(){
serviceName = '<?=$_GET['services'] . ".php";?>';
serviceID='<?= $_GET['services'];?>';
serviceClass = '<?=$_GET['services'];?>';
if(serviceName!=""){
alert(serviceID);
$('.main_content').load(serviceName);
$("#"+serviceID).addClass("it");
}
});
</script>