1. 程式人生 > >JS,DOM,JQuery,BootStrap學習知識整理

JS,DOM,JQuery,BootStrap學習知識整理

JavaScript: (Ps:參考 W3school)

JS的組成:

ECMAScript : 核心部分 ,定義js的語法規範

DOM: document Object Model 文件物件模型 , 主要是用來管理頁面的

BOM : Browser Object Model 瀏覽器物件模型, 前進,後退,頁面重新整理, 位址列, 歷史記錄, 螢幕寬高

JS的語法:

變數弱型別: var i = true

區分大小寫

語句結束之後的分號 ,可以有,也可以沒有

寫在script標籤

JS的資料型別:

  • 基本型別
    • string
    • number
    • boolean
    • undefine
    • null
  • 引用型別
    • 物件, 內建物件
  • 型別轉換
    • js內部自動轉換

JS的運算子和語句:

  • 運算子和java 一樣
    • “===” 全等號: 值和型別都必須相等
    • == 字串匹配, 值相等就可以了
  • 語句和java 一樣

JS的輸出

  • alert() 直接彈框

  • document.write() 向頁面輸出

  • console.log() 向控制檯輸出

  • innerHTML: 向頁面輸出

  • 獲取頁面元素: document.getElementById(“id的名稱”);

JS的開發步驟

1. 確定事件
   1.DOMEvent, onclick,onload,onfocus,onblur,onunload等
2. 通常事件都會出發一個函式
3. 函式裡面通常都會去操作頁面元素,
做一些互動動作
    var a = document.getElementById("ID").value;
a.innerHTML= "<><>";
a.innerText="ohhh";

DOM:

什麼是DOM:

     Document Object Model : 管理我們的文件   增刪改查規則 

HTML中的DOM操作:

一些常用的 HTML DOM 方法:
  getElementById(id) - 獲取帶有指定 id 的節點(元素) 
  appendChild(node) - 插入新的子節點(元素) 
  removeChild(node) - 刪除子節點(元素) 

  一些常用的 HTML DOM 屬性:
  innerHTML - 節點(元素)的文字值 
  parentNode - 節點(元素)的父節點 
  childNodes - 節點(元素)的子節點 
  attributes - 節點(元素)的屬性節點 


查詢節點:
getElementById() 返回帶有指定 ID 的元素。 
getElementsByTagName() 返回包含帶有指定標籤名稱的所有元素的節點列表(集合/節點陣列)。 
getElementsByClassName() 返回包含帶有指定類名的所有元素的節點列表。 

增加節點:
createAttribute() 建立屬性節點。 
createElement() 建立元素節點。 
createTextNode() 建立文字節點。 
insertBefore() 在指定的子節點前面插入新的子節點。 
appendChild() 把新的子節點新增到指定節點。 

刪除節點:
removeChild() 刪除子節點。 
replaceChild() 替換子節點。 

修改節點:
setAttribute()  修改屬性
setAttributeNode()  修改屬性節點

JQuery:

JQuery的作用:

1. 寫更少的程式碼,做更多的事情: write Less ,Do more
2. 將我們頁面的JS程式碼和HTML頁面程式碼進行分離

JQ中根據ID查詢元素

全都是根據選擇器去找的
#ID{}
.類名{}
$("#ID的名稱")

JQ和JS之間的轉換

                 1. JQ物件,只能呼叫JQ的屬性和方法
                  2.JS物件 只能呼叫JS的屬性和方法

function changeJS(){
				var div = document.getElementById("div1");
//				div.innerHTML = "JS成功修改了內容"
				//將JS物件轉成JQ物件
				$(div).html("轉成JQ物件來修改內容")
			}
			
			$(function(){
				//給按鈕繫結事件
				$("#btn2").click(function(){
					//找到div1
//					$("#div1").html("JQ方式成功修改了內容");
					//將JQ物件轉成JS物件來呼叫
					var $div = $("#div1");
//					var jsDiv = $div.get(0);
					var jsDiv = $div[0];
					jsDiv.innerHTML="jq轉成JS物件成功";
				});
			});

JQ的開發步驟:

(將我們頁面的JS程式碼和HTML頁面程式碼進行分離)

//1. 匯入JQ相關的檔案
//2.  文件載入完成事件: $(function)  : 頁面初始化的操作: 繫結事件, 啟動頁面定時器
//3. 確定相關操作的事件
//4. 事件觸發函式
//5. 函式裡面再去操作相關的元素

$ 的意義

  • $就是jQuery的別稱,而jQuery就是jQuery庫提供的一個函式.
    • 這個函式的作用是根據 () 裡的引數進行查詢和選擇html文件中的元素, 函式作用之一就是GetElementByID的代替,但()內不僅可以是ID,還可以是各類選擇器
    • jquery就是jquery物件,()就是jQuery(),在裡面可以傳引數,作用就是獲取元素

JQuery中的選擇器

讓我們能夠更加精確找到我們要操作的元素

基本選擇器

  • ID選擇器 : #ID的名稱
  • 類選擇器: 以 . 開頭 .類名
  • 元素選擇器: 標籤的名稱
  • 萬用字元選擇器: *
  • 選擇器,選擇器: 選擇器1,選擇器2

層級選擇器

  • 子元素選擇器: 選擇器1 > 選擇器2
  • 後代選擇器: 選擇器1 兒孫
  • 相鄰兄弟選擇器 : 選擇器1 + 選擇器2 : 找出緊挨著的一個弟弟
  • 找出所有弟弟: 選擇器1~ 選擇器2 : 找出所有的弟弟

屬性選擇器:

選擇器[href]  : 單個屬性

選擇器[href][title] : 多個屬性
選擇器[href][title='test'] : 多個屬性,包含值

表單選擇器:

:input   找出所有的輸入項 : 不單單找出input  textarea select 

:text  找出type型別為 text

:password

基本過濾器:

選擇器:first  : 找出的是第一個

:last  

:even   找出索引為偶數

:odd    找出奇數索引

:gt(index) :  大於索引

:lt(index)   小於

:eq(index)  等於

表單物件屬性:

找出select中被選中的那一項:

option:selected

表單校驗:

  • trigger : 觸發事件,但是會執行類似瀏覽將游標移到輸入框內的這種瀏覽器預設行為

  • triggerHandler : 僅僅只會觸發事件所對應的函式

  • is() trigger : 觸發瀏覽器預設行為

    triggerHandler : 不會觸發
    
    is : 判斷
    
    find : 查詢
    

使用JQuery傳送請求區域性重新整理頁面

資料交換格式:

	json

	xml
  • 什麼是JSON JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式。它基於ECMAScript的一個子集。 JSON採用完全獨立於語言的文字格式,但是也使用了類似於C語言家族的習慣(包括C、C++、C#、Java、JavaScript、Perl、Python等)。這些特性使JSON成為理想的資料交換語言。 易於人閱讀和編寫,同時也易於機器解析和生成(一般用於提升網路傳輸速率)。

  • JSON格式 JSON物件

    { key1:value}   
    {"username":"zhangsan","password":"123"}
    

    JSON陣列

    [{ key1:value},{ key1:value},{ key1:value}]
    

    $.get(url,function(data){})

JQuery 常用方法:

$(function)  : 文件載入完成的事件
css()  : 	修改css樣式
prop() :    修改屬性/ 獲取屬性 , true&& false 型別選擇
attr() :    修改屬性/ 獲取屬性  鍵值對處理, {"checked","false"}
html() :    修改innerHTML

append : 	給自己新增子節點 
appendTo :  將自己新增到別人家,給自己找一個爹
prepend :   在自己最前面新增子節點
after	:   在自己後面新增一個兄弟
empty	:   清空所有子節點

$(cities).each(function(i,n){
  	
})

$.each(arr,function(i,n){
  
});

Bootstrap:

BootStrap結構:

全域性CSS

  • bootStrap中已經定義好了一套CSS的樣式表

元件

  • BootStrap定義的一套按鈕,導航條等元件

JS外掛

  • BootStrap定義了一套JS的外掛,這些外掛已經預設實現了很多種效果

引入相關的標頭檔案:

<!-- 最新版本的 Bootstrap 核心 CSS 檔案 -->
	<link rel="stylesheet" href="../css/bootstrap.css" />
	
	<!--需要引入JQuery-->
	<script type="text/javascript" src="../js/jquery-1.11.0.js" ></script>
	
	<!-- 最新的 Bootstrap 核心 JavaScript 檔案 -->
	<script type="text/javascript" src="../js/bootstrap.js" ></script>
	
	<meta name="viewport" content="width=device-width, initial-scale=1">

Bootstrap 柵格系統的工作原理:

  • “行(row)”必須包含在 .container (固定寬度)或 .container-fluid (100% 寬度)中,以便為其賦予合適的排列(aligment)和內補(padding)。
  • 通過“行(row)”在水平方向建立一組“列(column)”。
  • 你的內容應當放置於“列(column)”內,並且,只有“列(column)”可以作為行(row)”的直接子元素。
  • 類似 .row 和 .col-xs-4 這種預定義的類,可以用來快速建立柵格佈局。Bootstrap 原始碼中定義的 mixin 也可以用來建立語義化的佈局。
  • 通過為“列(column)”設定 padding 屬性,從而建立列與列之間的間隔(gutter)。通過為 .row 元素設定負值 margin 從而抵消掉為 .container 元素設定的 padding,也就間接為“行(row)”所包含的“列(column)”抵消掉了padding

BootStrap的柵格系統

  • 響應式設計: 這種設計依賴於CSS3中的媒體查詢
  • 柵格樣式:
    • 裝置解析度大於1200 使用lg樣式
    • 裝置解析度大於992 < 1200 使用md樣式
    • 裝置解析度大於768 < 992 使用sm樣式
    • 裝置解析度小於768使用xs樣式

BootStrap 考慮以下幾個問題:

1.導航欄的生成 元件 -> navbar

2,輪播圖,以及時間控制 JS-> carousel (旋轉木馬)

<div id="carousel-example-generic" class="carousel slide" data-ride="carousel" data-interval="1000">

註釋:

查詢文件有限選擇線上文件w3school,其次在選擇離線文件.