php和html非常简单:
<?php
session_start();
$_SESSION['liked_or_not']=0;
?>
<button class="photo_like" value="<?php if($_SESSION['liked_or_not']==0){ echo 'Like';} else{ echo 'Unlike';} ?>" ><?php if($_SESSION['liked_or_not']==0){ echo 'Like';} else{ echo 'Unlike';} ?>
jQuery片段:
<script type="text/javascript">
$(document).ready(function(){
alert("alert one ="+ $('.photo_like').text());
if($('.photo_like').text()=='Like'){
alert("alert two ="+ like_text);
}
});
</script>
上面的代码将输出视为'alert one = Like',然后在警告框上的几个不可见的换行符后面。那个方块怎么出现在那里?
并且没有出现第二个警告框,因为方框不包含在if($('.photo_like').text()=='Like'){
比较中。
Chrome控制台也说:未捕获的TypeError:无法读取未定义的属性'hasPort'
解释
答案 0 :(得分:2)
您应该关闭按钮。
<button class="photo_like" value="<?php if($_SESSION['liked_or_not']==0){ echo 'Like';} else{ echo 'Unlike';} ?>" ><?php if($_SESSION['liked_or_not']==0){ echo 'Like';} else{ echo 'Unlike';} ?></button>
使用三元运算符可以使您的代码更清晰。
<?php $like_or_not = $_SESSION['liked_or_not']==0 ? 'Like' : 'Unlike'; ?>
<button class="photo_like" value="<?php echo $like_or_not; ?>"><?php echo $like_or_not; ?></button>
答案 1 :(得分:2)
如果您希望将值Like
和Unlike
设置到隐藏的输入框中,例如:
<input type="hidden" name="getTxt" value="<?php if($_SESSION['liked_or_not']==0){ echo 'Like';} else{ echo 'Unlike';} ?>" >
并使用以下内容:
var getHiddenVal = $('input[name="getTxt"]').val();
// Return the value
很容易弄乱代码。
答案 2 :(得分:0)
$('.photo_like')
可以返回多个对象。为了确保它只返回一个对象,请使用$('.photo_like:first')
要获取按钮的值,我总是使用val()而不是text()。
所以你的if应该是这样的:if($('.photo_like:first').val()=='Like'){}