為什么我這個“#imooc1”的p標簽還是js的效果,JQuery的效果沒出來<script type="text/javascript">?????? window.onload = function(){??????????? // 通過原生JS語法獲取id為imooc1的元素p?? ??? ??? ?var p = document.getElementById('imooc1');??????????? // 將元素p在html中內容改變?? ??? ??? ?p.innerHTML = 'P1:您好!通過慕課網學習jQuery才是最佳的途徑';??????????? // 將元素p的內容顏色改為紅色?? ??? ??? ?p.style.color = 'red';?? ??? ??? ?}??? </script>?? ???? <!-- 使用jQuery語法 -->??? <script type="text/javascript">??????? $(document).ready(function() {??????????? /**???????????? * 通過jQuery語法獲取id為imooc2的元素獲得一個jQuery對象???????????? * 調用該對象的html()方法進行更改內容???????????? * 調用該對象的css()方法進行更改顏色樣式???????????? */ ??????????? ???????????? $('#imooc1').html('p1:你好,世界').css('color','blue');??????????? var $p = $('#imooc2');??????????? $p.html('P2:您好!通過慕課網學習jQuery才是最佳的途徑').css('color','red');??????? });??? </script>?? ?</head><body>??? <p id="imooc1"></p>??? <p id="imooc2"></p></body>
1 回答
已采納

鬧小志
TA貢獻75條經驗 獲得超42個贊
你這個問題想錯了側重點,你要記得,代碼都是從上往下執行的。
那為什么會出現jquery代碼先執行的情況呢?就要從別的方面考慮。
首先我們來對程序做一些小改動,給兩個函數中添加分別添加個打印:
<script?type="text/javascript"> ???window.onload?=?function(){ ????console.log("js"); ????} </script> <!--?使用jQuery語法?--> <script?type="text/javascript"> ????$(document).ready(function()?{ ??????console.log("jquery"); ????}); </script>
運行之后,控制臺的輸出是這樣的:
我們再來做一些改變:
<script?type="text/javascript"> ???$(document).ready(function()?{ ??????console.log("js"); ????}); </script> <!--?使用jQuery語法?--> <script?type="text/javascript"> ????$(document).ready(function()?{ ??????console.log("jquery"); ????}); </script>
運行結果為:
以上結果說明,問題出現在window.onload和$(document).ready上,區別:
window.onload ?在DOM樹和所有文件加載完成之后觸發
$(document).ready ?在DOM樹加載完成之后觸發
兩個比較一下,也就是$(document).ready一定是在window.onload之前執行的!over!
點擊展開后面3條
- 1 回答
- 0 關注
- 1649 瀏覽
相關問題推薦
添加回答
舉報
0/150
提交
取消