2013-07-29 53 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> 
相關問題