整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          淺談Html的內容加載及JS執行順序

          事跟我說他用jQuery取不到頁面上隱藏元素input的值,他的html頁面大概內容如下。

          <!DOCTYPE html>
          <html lang="zh">
           
          <head>
          	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
          	<script type="text/javascript" src="jslib/jquery-1.11.2.min.js"></script>
          	<title>淺談Html頁面內容執行順序</title>
          	<script type="text/javascript">
          		var userId = $('#hiddenUserId').val();
          		var contextPath = $('#hiddenContextPath').val();
          		var userName = $('#hiddenUserName').val();
          	</script>
          </head>
           
          <body>
          	<input type="hidden" id="hiddenUserId" value="101" />
          	<input type="hidden" id="hiddenContextPath" value="/web" />
          	<input type="hidden" id="hiddenUserName" value="小明" />
          </body>
           
          </html>

          頁面中的JS腳本在head中,JS腳本要讀取的input在body中。瀏覽器對html頁面內容的加載是順序加載,也就是在html頁面中前面先加載,因此當加載到JS腳本時,input還沒有加載到瀏覽器中。JS是一種解釋性的腳本,也是從上而下順序執行,由于這段JS代碼是立即執行的,所以當JS在執行的時候,讀取不到input的值。

          最直接的修改方法是把JS放到網頁的最下面執行。

          <!DOCTYPE html>
          <html lang="zh">
           
          <head>
          	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
          	<script type="text/javascript" src="jslib/jquery-1.11.2.min.js"></script>
          	<title>淺談Html頁面內容執行順序</title>	
          </head>
           
          <body>
          	<input type="hidden" id="hiddenUserId" value="101" />
          	<input type="hidden" id="hiddenContextPath" value="/web" />
          	<input type="hidden" id="hiddenUserName" value="小明" />
          	
          	<script type="text/javascript">
          		var userId = $('#hiddenUserId').val();
          		var contextPath = $('#hiddenContextPath').val();
          		var userName = $('#hiddenUserName').val();
          	</script>
          </body>
           
          </html>

          把JS放到網頁的最下面,這樣在JS執行的時候,網頁內容都已經加載完畢。把JS放在網頁的最下面方法并不是最好的解決方法,大部分情況JS并不是總能放在網頁的最下面。這時可以用window的onload事件,onload事件在整個頁面都加載完成后才觸發,可以把JS腳本放在onload里面執行。不同瀏覽器onload事件添加方式也不一樣。

          IE下事件:

          window.attachEvent('onload', function(){
          			var userId = $('#hiddenUserId').val();
          			var contextPath = $('#hiddenContextPath').val();
          			var userName = $('#hiddenUserName').val();
          		});

          Chrome/Firefox等DOM標準事件:

          window.addEventListener('load', function(){
          			var userId = $('#hiddenUserId').val();
          			var contextPath = $('#hiddenContextPath').val();
          			var userName = $('#hiddenUserName').val();
          		});

          由于不同瀏覽器的事件添加方式不一樣,jQuery為我們提供了通用的初始化方法,該方法在頁面加載完成時觸發。

          $(function(){
          			var userId = $('#hiddenUserId').val();
          			var contextPath = $('#hiddenContextPath').val();
          			var userName = $('#hiddenUserName').val();
          		});

          上面方法本質就是添加onload監聽事件。

          最終修改后的頁面

          Query是一個JavaScript庫

          jQuery極大簡化了JavaScript

          JQuery是一個寫得更少,做的更多的JavaScript庫

          $("p").hide();找到所有p標簽,讓它消失。

          $("#test").hide() 隱藏id=test標簽

          $(this).hide() 隱藏當前的這個標簽

          jQuery兩個版本,一個是壓縮過后的,一個是未經壓縮的。

          Google 和 Microsoft 對 jQuery 的支持都很好。

          $(document).ready(function(){
          
          --- jQuery functions go here ----
          
          });

          文檔加載完全在進行jQuery操作。

          jQuery 使用 CSS 選擇器來選取 HTML 元素。

          $("p") 選取 <p> 元素。

          $("p.intro") 選取所有 class="intro" 的 <p> 元素。

          $("p#demo") 選取所有 id="demo" 的 <p> 元素。

          我可以選擇全局的p標簽,也可以選擇某一區域的p標簽

          jQuery CSS 選擇器可用于改變 HTML 元素的 CSS 屬性。

          $("p").css("background-color","red");

          把所有p標簽的背景色變為紅色。

          jQuery 使用名為 noConflict() 的方法來解決該問題。

          var jq=jQuery.noConflict(),幫助您使用自己的名稱(比如 jq)來代替 $ 符號。

          Query Mobile 會自動為 HTML 表單自動添加樣式,讓它們看起來更具吸引力,觸摸起來更具友好性。



          jQuery Mobile 表單結構

          jQuery Mobile 使用 CSS 為 HTML 表單元素添加樣式,讓它們更具吸引力,更易于使用。

          在 jQuery Mobile 中,您可以使用下列表單控件:

          • 文本輸入框

          • 搜索輸入框

          • 單選按鈕

          • 復選框

          • 選擇菜單

          • 滑動條

          • 翻轉撥動開關

          當使用 jQuery Mobile 表單時,您應當知道:

          • <form> 元素必須有一個 method 和一個 action 屬性

          • 每個表單元素必須有一個唯一的 "id" 屬性。id 必須是整個站點所有頁面上唯一的。這是因為 jQuery Mobile 的單頁導航機制使得多個不同頁面在同一時間被呈現

          • 每個表單元素必須有一個標簽。設置標簽的 for 屬性來匹配元素的 id

          實例

          <form method="post" action="demoform.html">

          <label for="fname">姓名:</label>

          <input type="text" name="fname" id="fname">

          </form>

          嘗試一下 ?

          如需隱藏標簽,請使用 class ui-hidden-accessible。這在您把元素的 placeholder 屬性作為標簽時經常用到:

          實例

          <form method="post" action="demoform.html">

          <label for="fname" class="ui-hidden-accessible">姓名:</label>

          <input type="text" name="fname" id="fname" placeholder="姓名...">

          </form>

          嘗試一下 ?

          提示: 我們可以使用 data-clear-btn="true" 屬性來添加清除輸入框內容的按鈕 (一個在輸入框右側的 X 圖標):

          實例

          <label for="fname">姓名:</label>

          <input type="text" name="fname" id="fname" data-clear-btn="true">

          嘗試一下 ?


          jQuery Mobile 表單圖標

          表單中的按鈕代碼是標準的 HTML <input> 元素 (button, reset, submit)。他們會自動渲染樣式,可以自動適配移動設備與桌面設備:

          實例

          <input type="button" value="按鈕">

          <input type="reset" value="重置按鈕">

          <input type="submit" value="提交按鈕">

          嘗試一下 ?

          如果需要在 <input> 按鈕中添加額外的樣式,可以使用下表中的 data-* 屬性:

          清除輸入框的按鈕可以在 <input> 元素中使用,但不能在 <textarea> 中使用。 搜索框中 data-clear-btn 默認值為 "true" ,你可以使用 data-clear-btn="false" 移除該圖標。
          屬性描述
          data-cornerstrue | false指定按鈕是否有圓角
          data-icon圖標參考手冊指定按鈕圖標
          data-iconposleft | right | top | bottom | notext指定圖標位置
          data-inlinetrue | false指定是否內聯按鈕
          data-minitrue | false指定是否為迷你按鈕
          data-shadowtrue | false指定按鈕是否添加陰影效果

          按鈕添加圖標:

          <input type="button" value="按鈕">

          <input type="reset" value="重置按鈕">

          <input type="submit" value="提交按鈕">

          嘗試一下 ?


          字段容器

          如需讓標簽和表單元素看起來更適應寬屏,請用帶有 "ui-field-contain" 類的 <div> 或 <fieldset> 元素包圍 label/form 元素:

          實例

          <form method="post" action="demoform.php">

          <div class="ui-field-contain">

          <label for="fname">姓:</label>

          <input type="text" name="fname" id="fname">

          <label for="lname">姓:</label>

          <input type="text" name="lname" id="lname">

          </div>

          </form>

          ui-field-contain 類基于頁面的寬度為標簽和表單控件添加樣式。當頁面的寬度大于 480px 時,它會自動把標簽放置在與表單控件同一線上。當頁面的寬度小于 480px 時,標簽會被放置在表單元素的上面。

          提示:為了防止 jQuery Mobile 為可點擊元素自動添加樣式,請使用 data-role="none" 屬性:

          實例

          <label for="fname">姓名:</label>

          <input type="text" name="fname" id="fname" data-role="none">

          嘗試一下 ?

          jQuery Mobile 中的表單提交

          jQuery Mobile 通過 AJAX 自動處理表單提交,并將試圖集成服務器響應到應用程序的 DOM 中。


          主站蜘蛛池模板: 精品无码人妻一区二区三区 | 国产无线乱码一区二三区 | 日本免费一区二区三区最新vr| 人妻无码一区二区视频| 一区二区三区视频在线观看| eeuss鲁片一区二区三区| 熟女精品视频一区二区三区| 久久国产高清一区二区三区 | 水蜜桃av无码一区二区| 国产精品毛片一区二区| 日韩精品无码人妻一区二区三区 | 人妻无码一区二区视频| 国产丝袜无码一区二区视频| 国产成人无码一区二区三区 | 日韩精品一区二区三区色欲AV| 手机福利视频一区二区| 久久一本一区二区三区| 成人乱码一区二区三区av| av无码一区二区三区| 亚洲成av人片一区二区三区| 一区二区三区免费在线视频| 国产精品盗摄一区二区在线| 在线免费观看一区二区三区| 久久一区二区三区精华液使用方法| 精品黑人一区二区三区| 日韩精品一区二区三区老鸭窝| 亚洲国产美女福利直播秀一区二区| 性色A码一区二区三区天美传媒| 看电影来5566一区.二区| 国99精品无码一区二区三区| 亚洲综合无码一区二区| 国产精品福利一区二区| 精品国产一区在线观看 | 无码人妻精品一区二区三区66| 国产精品毛片一区二区三区| 日韩一区二区三区无码影院| 中文字幕乱码人妻一区二区三区| 波多野结衣AV一区二区三区中文 | 久久免费精品一区二区| 中文字幕久久亚洲一区| 无码人妻精品一区二区三区在线|