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

时间:2012-01-24 08:03:07

标签: php jquery html

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'

解释

3 个答案:

答案 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)

如果您希望将值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

很容易弄乱代码。

答案 2 :(得分:0)

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

要获取按钮的值,我总是使用val()而不是text()。

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