使用我的代码,我可以通过点击更改我的文字:
$('.SeeMore').click(function(){
var $this = $(this);
$this.toggleClass('SeeMore');
if($this.hasClass('SeeMore')){
$this.text('+ more');
} else {
$this.text('- less');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class="SeeMore" style="cursor:pointer">+ more</li>
到目前为止这种方法运作良好。但因为我的页面有不同的语言版本,我想用php交换单词:
<script>
$('.SeeMore').click(function(){
var more = <?php echo $lang['MORE']; ?>
var less = <?php echo $lang['LESS']; ?>
var $this = $(this);
$this.toggleClass('SeeMore');
if($this.hasClass('SeeMore')){
$this.text(more);
} else {
$this.text(less);
}
});</script>
不幸的是现在我的代码不再工作了,我不知道为什么。
你错过了两件事 -
1. Semi-colon at the end of the statement.
2. Double / single quotation around the PHP statement inside the jQuery.
你需要使用"
,例如:var more = "<?php echo $lang['MORE']; ?>";
你忘记了分号和引号:
var more = "<?php echo $lang['MORE']; ?>";
var less = "<?php echo $lang['LESS']; ?>";
编写代码生成代码很难,可能会令人困惑。更好地使用体面的模板系统(例如Smarty)。
你忘记了引号:
var more = "<?php echo $lang['MORE']; ?>";
var less = "<?php echo $lang['LESS']; ?>";
使用数据属性
HTML:
<li class="SeeMore" data-less="<?php echo $lang['LESS']; ?>" data-more="<?php echo $lang['MORE']; ?>" style="cursor:pointer">+ more</li>
JS:
$('.SeeMore').click(function(){
var more = $(this).attr('data-more');
var less = $(this).attr('data-less');
var $this = $(this);
$this.toggleClass('SeeMore');
if($this.hasClass('SeeMore')){
$this.text(more);
} else {
$this.text(less);
}
});
PS:不要忘记在文档就绪语句中包装click事件
您可以使用以下代码在jquery中使用您的php变量:
token = "<?php echo $_SESSION['token']; ?>"