在JQuery中连接两个字符串

6
就像上面的标题一样:如何在 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值连接起来,并尝试将其放入警报中,结果是正确的,但是当我将其分配给.addClass时它无法工作。

非常感谢任何替代方案和解决方案。


3
使用“+”连接符:serviceName = '<?=$_GET[' + services +'] . ".php";?>'; 翻译为:将变量services与字符串".php"使用"+"号连接并作为$_GET数组的索引,赋值给变量serviceName。 - Luca Davanzo
2
这样不行,你正在尝试从PHP返回数据到JavaScript。你需要调用服务器(PHP)并返回所需的值,然后才能在JavaScript中使用它。 - thomaux
1
PHP 到 JavaScript 的数据应该可以正常工作。 - Jamie Taylor
那段代码应该可以工作。尝试插入 alert($(serviceID).length),以查看是否已获取元素,如果它弹出一个大于0的数字,则表示成功。 - Reigel Gallarde
代码是正确的...我已经将您的代码粘贴到PHP文件中...看看这个.. http://www.iwebtool.com/code_viewer?domain=reigelgallarde.me%2Ftest.php%3Fservices%3Dreigel - Reigel Gallarde
3个回答

12
我猜你的意思是 PHP 代码应该在到达客户端之前进行评估,因此你的代码语法是正确的,但是请看下面的代码,它看起来更加简洁,也不会污染全局 JavaScript 范围(这就是 var ... 的作用):
var serviceClass = '<?="{$_GET["services"]}";?>';
var serviceName = serviceClass+'.php';
var serviceId = '#'+serviceClass;

然而,由于您的代码语法正确,您应该验证在执行代码时是否实际存在一个id为serviceId的元素。

if (($(serviceId)||[]).length) {
    alert('your element with the id:'+serviceClass+' exists');
}
else {
    alert('your element with the id:'+serviceClass+' doesn\'t exists');
}

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开发人员工具),以查看是否符合您的条件


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>

对于其他试图查看更改的人来说,"#"已经从变量移动到选择器。 - Jamie Taylor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接