这里通过jQuery检索到的按钮文本是什么


What is the button text retrieved through jQuery here?

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控制台显示:未捕获类型错误:无法读取未定义的属性"hasPort"

解释?

您应该关闭按钮。

<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>

如果您想将值LikeUnlike设置到隐藏的输入框中,如:

<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

打乱代码要容易得多。

$('.photo_like')可以返回多个对象。为了确保只返回一个对象,请使用$('.photo_like:first')

为了获得按钮的值,我总是使用val()而不是text()。

所以你的if应该是这样的:if($('.photo_like:first').val()=='Like'){}