2016-08-16 198 views
0

希望你能幫助我。如何在Jquery/Javascript中設置元素的初始值?jquery設置初始值

爲了解釋我的問題,我有以下代碼片段。 我的代碼片段按我的意思工作,但只能在「onclick」之後。當我加載頁面時,它不會得到正確的值。在這種情況下,我希望當我點擊「顯示每月」出現80歐元,並且點擊顯示年度出現800歐元時。但它只適用於我點擊後,而不是當我加載頁面。

感謝

//Trying to set the initial value 
 
$(document).ready(function() { 
 
    $(".teste").ready(function() { 
 
     var initialVal = $(this).html(); 
 
if(initialVal !== "Show Monthly"){ 
 
    jQuery(".amountMonth").hide(); 
 
    jQuery(".amountAnnual").show(); 
 
}else{ 
 
    jQuery(".amountMonth").show(); 
 
    jQuery(".amountAnnual").hide(); 
 
}  
 
    }); 
 
}); 
 

 

 
//OnClick is working right 
 
$(document).ready(function() { 
 
    $(".teste").click(function(e) { 
 
     e.preventDefault(); 
 
     var initialVal = $(this).html(); 
 
     if(initialVal !== "Show Monthly"){ 
 
      $(".showAnnualMonthly a").text("Show Monthly"); 
 
      $(".perYearMonth").text("per year"); 
 
      jQuery(".monthlyOptions").hide(); 
 
      $("#arrowUpDown").removeClass("icon-up-arrow-button"); 
 
      $("#arrowUpDown").addClass("icon-down-arrow-button"); 
 
      jQuery(".amountMonth").hide(); 
 
      jQuery(".amountAnnual").show(); 
 
     } 
 
     else if (initialVal !== "Show Annual"){ 
 
      $(".showAnnualMonthly a").text("Show Annual"); 
 
      $(".perYearMonth").text("per month"); 
 
      jQuery(".monthlyOptions").show(); 
 
      $("#arrowUpDown").removeClass("icon-down-arrow-button"); 
 
      $("#arrowUpDown").addClass("icon-up-arrow-button"); 
 
      jQuery(".amountMonth").show(); 
 
      jQuery(".amountAnnual").hide(); 
 
     } 
 
    }); 
 
     
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p class="amount amountAnnual" style="display:none">Annual --> 600€</p> 
 
<p class="amount amountMonth" style="dispay:none">Monthly--> 60€</p> 
 

 
<p class="showAnnualMonthly" id="showMonthlyOpt"> 
 
    <a href="" style="border:0; text-decoration:none;" class="teste">Show Monthly 
 
    <div class="row"> 
 
     <span id="arrowUpDown" class="icon-down-arrow-button changeArrow" style="color: rgba(0, 161, 204, 1); margin-bottom:30px; font-size:36px;"></span> 
 
    </div> 
 
    </a> 
 
</p>

回答

1

只要運行,用於顯示和隱藏內部$(document).ready()但單擊處理外p元素的代碼。不需要第一個$(document).ready()函數;你可以將它們合併成一個。

+0

嗨,感謝您的時間,是的你是對的,我做到了這一點,以更好地展示我的問題。但是結合它們,實際上它沒有區別。 「p」元素已被隱藏(html中的「display:none」)。我無法獲得初始值(在頁面加載)正確。 – grcoder

+0

看到這個:https://gist.github.com/calebsander/ac7271768a8fc76a4ff45c10aeef6660 – csander

+0

啊! 「** $(」。teste「)。html(); **」所以這是個問題。它以這種方式工作。但是,如果它指的是「.teste」,那麼爲什麼「this」不起作用仍然不太明白。無論如何,我會肯定的研究。 **非常感謝您的時間。 :)** – grcoder