2013-07-29 51 views
-4

,我问了一个关于这个的问题:点击元素a来改变我的内容。但是我不明白为什么我再次点击js,也许我的代码甚至是错误的。我不是为什么我的代码不能像我想要的那样在上午再次点击

<!DOCTYPE HTML> 
<html lang="en"> 
<head> 
<meta charset="UTF-8"> 
<title></title> 
<style type="text/css"> 
    #google p { 
     display: inline-block; 
     margin-right: 20px; 
    } 
</style> 
<script src="../jquery-1.10.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
    $(function() { 
     var obj = $("#google a") 
     var $text = obj.text() 
     var $thiss = 'this' 
     var $thats = 'that' 
     var $yes = 'yes' 
     var $no = 'no' 
     obj.click(function() { 
      if ($text === $thiss) { 
       $("#google > p").empty() 
       $("#google > p").append($yes) 
      } else { 
       $("#google > p").empty() 
       $("#google > p").append($no) 
      } 
     }) 
    }) 
</script> 
</head> 
<body> 
    <div id="google"> 
     <p>no</p><a href="javascript:void(0);">this</a> 
    </div> 
</body> 
</html> 

我把代码上的jsfiddle:http://jsfiddle.net/Jackyhua/nugyM/ 这个时候,我也想,为什么我写的判断条件,但我的代码并不像我的大脑工作。 我在关于两次相同的问题上有错。我想要得到真正的提示。 对我很重要的是,不是“==”或“===”,对我来说的一点是,当我的“如果”被判断时,内容改变了,但是当我再次点击时,没有改变。我,如何让元素一次又一次地点击很重要。

我更改代码更换预定进口不是 “==”,但http://jsfiddle.net/Jackyhua/nugyM/2/

+2

我建议你看一下比较运算这里https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators –

+1

**无分号**为什么? – Praveen

+0

对我的问题不是“==”,但是当我再次点击没有效果。我想让元素a再次点击 – sgsheg

回答

0
if ($text = $thiss) { // = will assign the value 

应该

if ($text == $thiss) { // == or === strict comparison operator 

剩余的Updated JSFiddle

工作良好

Though semi-colons are optional in Javascript, but they are considered as a good practice for years.因此,在完成每个语句后添加分号 d。

编辑:更好的办法是

$(function() { 
    var obj = $("#google a"); 
    obj.on('click', function() { 
     if (obj.text() === 'this') { // instead of assigning text to a variable, 
      $("#google > p").empty(); // better have it dynamically 
      $("#google > p").append('yes'); 
      $('#google a').empty(); 
      $('#google a').append('that'); 
     } else { 
      $("#google > p").empty(); 
      $("#google > p").empty(); 
      $("#google > p").append('no'); 
      $('#google a').empty(); 
      $('#google a').append('this'); 
     } 
    }); 
}); 

JSFiddle

+0

@sgsheg检查更新小提琴,点击它检查if语句中的条件。因为总是执行if块。 – Praveen

+0

@sgsheg,因为你下一次没有初始化'$ text'。这就是原因,请查看http://jsfiddle.net/nugyM/3/ – Praveen

0
$(function() { 
    var obj = $("#google a"); 
    var $text = obj.text(); 
    var $thiss = 'this'; 
    var $thats = 'that'; 
    var $yes = 'yes'; 
    var $no = 'no'; 
    obj.click(function() { 
     if ($text === $thiss) { 
      $("#google > p").empty(); 
      $("#google > p").append($yes); 
     } else { 
      $("#google > p").empty(); 
      $("#google > p").append($no); 
     } 
    }); 
}); 
0

您可以尝试切换功能改用。 http://api.jquery.com/toggle/

$(function() { 
    var obj = $("#google a") 
    var $text = obj.text() 
    var $thiss = 'this' 
    var $thats = 'that' 
    var $yes = 'yes' 
    var $no = 'no' 
    obj.click(function() { 
     $("#google > p").toggle(); 
    }) 
}) 

<div id="google"> 
    <p style='display:none'>no</p><p>yes</p><a href="javascript:void(0);">this</a> 
</div> 
相关问题