亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當Js與jQuery同時對一個元素進行修改的時候,是哪個起效呢

當Js與jQuery同時對一個元素進行修改的時候,是哪個起效呢

仲鳴 2016-05-18 20:56:46
為什么我這個“#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>

運行之后,控制臺的輸出是這樣的:

http://img1.sycdn.imooc.com//573d3a400001abc902280115.jpg

我們再來做一些改變:

<script?type="text/javascript">
???$(document).ready(function()?{
??????console.log("js");
????});
</script>
<!--?使用jQuery語法?-->
<script?type="text/javascript">
????$(document).ready(function()?{
??????console.log("jquery");
????});
</script>

運行結果為:

http://img1.sycdn.imooc.com//573d3abf0001c92f01980120.jpg

以上結果說明,問題出現在window.onload和$(document).ready上,區別:

window.onload ?在DOM樹和所有文件加載完成之后觸發

$(document).ready ?在DOM樹加載完成之后觸發

兩個比較一下,也就是$(document).ready一定是在window.onload之前執行的!over!

查看完整回答
2 反對 回復 2016-05-19
  • 仲鳴
    仲鳴
    謝謝了,說的好清楚
  • 仲鳴
    仲鳴
    可不可以再幫忙回答一個簡單的問題,element.style.transfrom="rotateX("+a+"deg)";中"+a+"為什么不能換成單引號呢,不是說單引號雙引號都可以的嗎
  • 鬧小志
    鬧小志
    你這個是三個部分的相加,咱們假設完整的是這樣:element.style.transfrom="rotateX(30deg)";你可以看懂,當我們把30換成一個a變量的時候,就需要我們拼字符串,這時候就分成了三部分: (1)rotateX( 字符串表示為"rotateX(" (2)變量a 字符串表示為a (3)deg) 字符串表示為"deg)" 字符串拼接就可以表示成:"rotateX(" + a + "deg)".兩個加號是三個部分。 也就是說,如果你想用單引號的話就可以寫成這樣:'rotateX(' + a + 'deg)' 主要的問題就是分清哪個引號是一對,變量是不需要引號的喲~
點擊展開后面3
  • 1 回答
  • 0 關注
  • 1649 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號