2019/0322/DOM&JQ基礎&系統分析設計PPT&在職班補充

前端

DOM 文件物件模型

html 階層樹根

jq = js 做好的函式庫 => 幾乎js能做的都做得到但是更簡化 => 好學所以變主流

教學方式 jq

dom 網頁上操作 抓id就能操作

網頁上物件活的不是死的 但因為階層樹根的特性 可以從最上面階層慢慢選到下面你要的地方

asp.net 就是根據需要的功能選擇適合的控制項去調整屬性跟操作跟邏輯

前端則是更複雜你可以不用button但是用div改成button的樣子

創建標籤 createElement

apendChird 新增標籤

要新增到正確的樹狀位置

children [ ] 指定樹狀位置

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <style>
        #btn{
            border:2px solid;
            width:100px;
            cursor:pointer;
            background-color:#808080;
            box-shadow:2px 2px 5px black;
        }
    </style>
</head>
<body>
    <table border="1" width="400" id="myTable">
        <tr>
            <td>姓名</td>
            <td>成績</td>
        </tr>
        <tr>
            <td>張三</td>
            <td>54</td>
        </tr>

        <tr>
            <td>李四</td>
            <td>78</td>
        </tr>


    </table>

    <hr />
    姓名:<input id="txtName" type="text" /><br />
    成績:<input id="txtScore" type="text" />
    <div id="btn" onclick="InsertData()">插入成績資料</div>


    <script>
        var myTable = document.getElementById("myTable");
        var Name = document.getElementById("txtName");
        var Score = document.getElementById("txtScore");

        function InsertData() {

            var tr = document.createElement("tr");
            var td1 = document.createElement("td");
            var td2 = document.createElement("td");

            td1.innerText= Name.value;
            td2.innerText = Score.value;

            tr.appendChild(td1);
            tr.appendChild(td2);

            myTable.children[0].appendChild(tr);
        }

    </script>
</body>
</html>

JQUERY

前端網站很容易沒辦法向下版本相容所以舊版本起勿更新最好是重製在製

好像是因為綁GIT所以不相容

後來發現只要把官網函式庫鏈結檔案下載下來就好了 不一定要用這種方式安裝

cdn cbn 模式

$呼叫('函數名稱').addClass('yellow');

$呼叫('函數名稱').addClass('red').addClass('line');

扛拜 ??? combine 結合

不會依照 這裡的命令顯示會依照 css style head 順序後面會蓋掉前面的先執行

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <style>
        .line {
            border: 1px solid;
        }
        .red {
            background-color: red;
        }
        .yellow {
            background-color: yellow;
        }

      
    </style>
</head>
<body>
    <ul id="list">
        <li>aaa</li>
        <li>bbb</li>
        <li>ccc</li>
        <li>ddd</li>
        <li>eee</li>
    </ul>

    <ol id="list2">
        <li>aaa</li>
        <li>bbb</li>
        <li>ccc</li>
        <li>ddd</li>
        <li>eee</li>
    </ol>


    <script src="Scripts/jquery-3.3.1.js"></script>
    <script>
        //$('#list').addClass('yellow');
        //$('#list').addClass('line');
        //$('#list').addClass('red');
        $('#list').addClass('red').addClass('line').addClass('yellow');

    </script>
</body>
</html>

系統分析就像一門藝術很抽象化

這裡少聽東西 建議聽回播看看

jq選擇器

選擇器跟 css一樣可以去選擇子標籤

$('#list2 li').addClass('line')

選擇子標籤的指定標籤

$('#list2 li:first-child').addClass('line')

指定子標籤但不影像子標籤的子標籤

$('#list2>li:first-child').addClass('line')

選擇子標籤內的基數列

$('#list>li:nth-child(2n+1)').addClass('yellow');

js沒有選擇器可用那怎辦呢

指定id的標籤

var list = document.getElementByID("list")

如果要指定子標籤呢?要就重複做不然只能寫迴圈

for(i=0;i<list.children.length;i++){list.children[i].className="red line"};

如果要指定基數列呢?

for(i=0;i<list.children.length;i++){list.children[i].className="red line";  
if (i % 2 == 0)list.children[i].className += " yellow";};

要指定子標籤的指標簽呢?

list2.children[0].className = "line";

js與jq最大差別在於選擇器

jq控制css

按鈕按下去文本才吃屬性

    <h1>
        歡迎光臨我的網站
    </h1>
    <input id="Button1" type="button" value="button" onclick="getH1ClassCSS()" />

    <script src="Scripts/jquery-3.3.1.js"></script>
    <script>

        function getH1ClassCSS() {
            //$('h1').addClass('h1');
            $('h1').css({
                'background-color': 'red',
                'color': 'white',
                'border': '3px solid green',
                'text-align': 'center',
                'font-size': '36pt'
            });


        }

    </script>

集合不是放在中括號就是放在大括號

jq 不只不用宣告連監聽器都省了 ...

jq小動畫 互相呼叫函式

<body>

    <h1>
        歡迎光臨我的網站
    </h1>
    <input id="Button1" type="button" value="button" onclick="getH1ClassCSS()" />
    <!--<input id="Button2" type="button" value="button" onclick="getH1ClassCSS2()" />-->


    <script src="Scripts/jquery-3.3.1.js"></script>
    <script>

        function getH1ClassCSS() {
            //$('h1').addClass('h1');
            $('h1').css({
                'background-color': 'red',
                'color': 'white',
                'border': '3px solid green',
                'text-align': 'center',
                'font-size': '36pt'
            });

            setTimeout("getH1ClassCSS2()",300);
        }


        function getH1ClassCSS2() {
            $('h1').css({
                'background-color': 'blue',
                'color': 'yellow',
                'border': '10px dotted white',
                'text-align': 'center',
                'font-size': '50pt'
            });

            setTimeout("getH1ClassCSS()", 300);
        }

    </script>
</body>

在職班補充

#pre Javascript DOM 操作

Append

appendChild

createElement

getElementById

createTextNode

insertBefore

children

children[n]

target

#jQ 函式庫 常用的功能已經寫好了,繼承像CSS選擇器的方法。

很多前端的compones元件 formwork框架 很多都是 Jq 開發的。

JQ API寫得非常好

1跟2同時存在 但2版不支援舊版IE 、 3版為整合版同時支援

新開發的網站可以選擇新版,但舊的盡量不要更新版本,並不是完全像下相容

其實

Jquery = $

$() = jquery()

$(‘#list’) = jquery(‘#list’)

##小技巧 利用 CSS 選擇器 打關鍵字選擇 複製到 JQ去貼

nth-child(2n+1)

combine class 會以後面為組 不是指combind的順序 而是style的上下

屬性有相衝時的優先順序

簡單的

<script>

$('#list').addClass('line');

$('#list>li').addClass('yellow');

$('#list>nth-child(2n+1)').addClass('red');

</script>

在javascript 就必須要利用到

迴圈等等方式才能做到上面三行的功能

//var list = document.getElementById("list");

//list.className = "line";

//for (i = 0; i < list.children.length; i++) {

// list.children[i].className = "line yellow";

// if (i % 2 == 0)

// list.children[i].className += " red";

//}

##jq對css方法的支援

Inline 每行都寫 => css 選擇器 少寫一些 => 無法指定必須動態加時 jq

只要是Key value 在程式裡面必須要用字串表現且要用逗點隔開

專題出問題後面被康哥打亂了都沒在聽但是應該跟之前的不會差太多

簡報

系統分析與設計

99 流程圖 -> 需求確認完成(通常會少( 只會大概知道.

環境圖 式草稿 確認系統與外部時體之間關係

事件條列式 是為了打草稿 打功能草稿

xx流程圖上的字不一定會出現在條列式上?

菱形是指判斷

use case

職業競賽 通常管理系統

enduser 使用者的霸主 只是單純再用系統的人

只知道 使用者流程 但 know how 不懂 系統的流程

coder 大陸 工匠

programer 設計

系統設計師 sd

sa

dba

pm

斗面拉里舉 domain knowledge

企業管理 產銷人發財

工業管理 物料 生館 銷售 製造 存貨\

結構化技術

物件導向技術 uml 軟體工程

雛型主要是降低時間風險成本

螺旋模式主要在風險控管

敏捷軟體開發? 前面一堆sop太慢 遊戲公司最需要 因為生命週期很短 只有一種遊戲歷久不衰 博弈 scrum 燃盡圖

mda

159 - 161

js 程式進入點 main or page load

sql 計算過 having 包含 groud up 強迫參考完整性

高考

其他

循序圖 趨勢線 上升下

Last updated