Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
lt;input> 元素的輸入類型
大家學習了表單之后,有木有發現input通過定義不同的type屬性,描述不同的輸入類型。今天小編帶大家總結一下input常用的輸入類型。
1.文本輸入
設置 type 屬性值為 'text'
<input type="text">
文本輸入框
2.密碼輸入
設置 type 屬性值為 ‘password’
<input type="password">
密碼輸入框
3.提交表單按鈕
設置 type 屬性值為 ‘submit’
<input type="submit">
定義提交表單數據至表單處理程序的按鈕
4.單選按鈕
設置 type 屬性值為 ‘radio’
<input type="radio">true
單選按鈕
5.復選框
設置 type 屬性值為 ‘checkbox’
<input type="checkbox">
6.按鈕
設置 type 屬性值為 ‘button’
<input type="button" value="確定">
<input>元素輸入屬性
在講input的輸入屬性之前,給大家講講HTML屬性是怎么回事。
可能大家也發現了,之前文章講得的HTML中,好多加了屬性的元素,例如a標簽中加了href屬性定義了鏈接的地址,還有table中加border屬性給表格添加邊框線。
<a >sublime的安裝與使用</a>
<table border="1"></table>
HTML 標簽可以擁有屬性。屬性提供了有關 HTML 元素的更多的信息。
屬性總是以名稱/值對的形式出現,比如:name="value"。屬性總是在 HTML 元素的開始標簽中規定。
雖然屬性和屬性值對大小寫不敏感,但是小編還是建議大家用小寫的。
后續課程CSS會用到屬性給大家總結一下:
class 規定元素的類名
id 規定元素的唯一 id
style 規定元素的行內樣式
好啦,我們開始學習input的輸入屬性。
看如下例子,
<input type="text" value="John">
type屬性定義了文本的輸入類型,value屬性定義了輸入字段的初始值。
設置默認值
用value設置初始值往往在你修改輸入值時遇到麻煩,如果不提前把初始值刪掉的話,你輸入新值后跟在初始值后邊。
修改輸入值
為了解決這個問題,我們可以使用占位符(placeholder)
<input type="text" placeholder="John" >
當你輸入新值時,初始值會消失。
使用占位符
readonly 屬性
readonly 屬性規定輸入字段為只讀(不能修改)
<input type="text" value="Sunshin" readonly>
disabled 屬性
disabled 屬性規定輸入字段是禁用的。
被禁用的元素是不可用和不可點擊的。
被禁用的元素不會被提交。
<input type="text" value="Sunshin" disabled >
輸入框不可用
required 屬性
required 屬性是布爾屬性。如果設置,則規定在提交表單之前必須填寫輸入字段。
<input type="text" value="Sunshin" required>
今天內容是不是又有點多呢?我控制不住我自己啊(⊙o⊙)…
打開編輯器好好練習一下吧!
你必須非常努力,才能看起來好不費力!
關注小白前端,才能持續收到文章推送哦~
, 判斷字符串是否是這樣組成的,第一個必須是字母,后面可以是字母、數字、下劃線,總長度為5-20
var reg=/^[a-zA-Z][a-zA-Z_0-9]{4,19}$/;
reg.test("a1a__a1a__a1a__a1a__");
2,截取字符串abcdefg的efg
var str="abcdefg";
if (/efg/.test(str)) {
var efg=str.substr(str.indexOf("efg"), 3);
alert(efg);
}
3,判斷一個字符串中出現次數最多的字符,統計這個次數
//將字符串的字符保存在一個hash table中,key是字符,value是這個字符出現的次數
var str="abcdefgaddda";
var obj={};
for (var i=0, l=str.length; i < l; i++) {
var key=str[i];
if (!obj[key]) {
obj[key]=1;
} else {
obj[key]++;
}
}
/*遍歷這個hash table,獲取value最大的key和value*/
var max=-1;
var max_key="";
var key;
for (key in obj) {
if (max < obj[key]) {
max=obj[key];
max_key=key;
}
}
alert("max:"+max+" max_key:"+max_key);
4,IE與FF腳本兼容性問題
(1) window.event:
表示當前的事件對象,IE有這個對象,FF沒有,FF通過給事件處理函數傳遞事件對象
(2) 獲取事件源
IE用srcElement獲取事件源,而FF用target獲取事件源
(3) 添加,去除事件
IE:element.attachEvent(“onclick”, function) element.detachEvent(“onclick”, function)
FF:element.addEventListener(“click”, function, true) element.removeEventListener(“click”, function, true)
(4) 獲取標簽的自定義屬性
IE:div1.value或div1[“value”]
FF:可用div1.getAttribute(“value”)
(5) document.getElementByName()和document.all[name]
IE;document.getElementByName()和document.all[name]均不能獲取div元素
FF:可以
(6) input.type的屬性
IE:input.type只讀
FF:input.type可讀寫
(7) innerText textContent outerHTML
IE:支持innerText, outerHTML
FF:支持textContent
(8) 是否可用id代替HTML元素
IE:可以用id來代替HTML元素
FF:不可以
這里只列出了常見的,還有不少,更多的介紹可以參看JavaScript在IE瀏覽器和Firefox瀏覽器中的差異總結
5,規避javascript多人開發函數重名問題
(1) 可以開發前規定命名規范,根據不同開發人員開發的功能在函數前加前綴
(2) 將每個開發人員的函數封裝到類中,調用的時候就調用類的函數,即使函數重名只要類名不重復就ok
6,javascript面向對象中繼承實現
javascript面向對象中的繼承實現一般都使用到了構造函數和Prototype原型鏈,簡單的代碼如下:
function Animal(name) {
this.name=name;
}
Animal.prototype.getName=function() {alert(this.name)}
function Dog() {};
Dog.prototype=new Animal("Buddy");
Dog.prototype.constructor=Dog;
var dog=new Dog();
7,FF下面實現outerHTML
FF不支持outerHTML,要實現outerHTML還需要特殊處理
思路如下:
在頁面中添加一個新的元素A,克隆一份需要獲取outerHTML的元素,將這個元素append到新的A中,然后獲取A的innerHTML就可以了。
SPANDIV
SPAN
P
8,編寫一個方法 求一個字符串的字節長度
假設:
一個英文字符占用一個字節,一個中文字符占用兩個字節
function GetBytes(str){
var len=str.length;
var bytes=len;
for(var i=0; i
if (str.charCodeAt(i) > 255) bytes++;
}
return bytes;
}
alert(GetBytes("你好,as"));
9,編寫一個方法 去掉一個數組的重復元素
var arr=[1 ,1 ,2, 3, 3, 2, 1];
Array.prototype.unique=function(){
var ret=[];
var o={};
var len=this.length;
for (var i=0; i
var v=this[i];
if (!o[v]){
o[v]=1;
ret.push(v);
}
}
return ret;
};
alert(arr.unique());
10,寫出3個使用this的典型應用
(1)在html元素事件屬性中使用,如
(2)構造函數
function Animal(name, color) {
this.name=name;
this.color=color;
}
12,如何顯示/隱藏一個DOM元素?
el.style.display="";
el.style.display="none";
el是要操作的DOM元素
13,JavaScript中如何檢測一個變量是一個String類型?請寫出函數實現
String類型有兩種生成方式:
(1)Var str=“hello world”;
(2)Var str2=new String(“hello world”);
function IsString(str){
return (typeof str=="string" || str.constructor==String);
}
var str="";
alert(IsString(1));
alert(IsString(str));
alert(IsString(new String(str)));
14,網頁中實現一個計算當年還剩多少時間的倒數計時程序,要求網頁上實時動態顯示“××年還剩××天××時××分××秒”
15,補充代碼,鼠標單擊Button1后將Button1移動到Button2的后面
16,JavaScript有哪幾種數據類型
簡單:Number,Boolean,String,Null,Undefined
復合:Object,Array,Function
17,下面css標簽在JavaScript中調用應如何拼寫,border-left-color,-moz-viewport
borderLeftColor
mozViewport
18,JavaScript中如何對一個對象進行深度clone
function cloneObject(o) {
if(!o || 'object' !==typeof o) {
return o;
}
var c='function'===typeof o.pop ? [] : {};
var p, v;
for(p in o) {
if(o.hasOwnProperty(p)) {
v=o[p];
if(v && 'object'===typeof v) {
c[p]=Ext.ux.clone(v);
}
else {
c[p]=v;
}
}
}
return c;
};
19,如何控制alert中的換行
\n alert(“p\np”);
20,請實現,鼠標點擊頁面中的任意標簽,alert該標簽的名稱.(注意兼容性)
SPANDIV
SPAN
P
21,請編寫一個JavaScript函數 parseQueryString,它的用途是把URL參數解析為一個對象,如:
var url=“http://witmax.cn/index.php?key0=0&key1=1&key2=2″;
function parseQueryString(url){
var params={};
var arr=url.split("?");
if (arr.length <=1)
return params;
arr=arr[1].split("&");
for(var i=0, l=arr.length; i
var a=arr[i].split("=");
params[a[0]]=a[1];
}
return params;
}
var url="http://witmax.cn/index.php?key0=0&key1=1&key2=2";
var ps=parseQueryString(url);
alert(ps["key1"]);
22,ajax是什么? ajax的交互模型? 同步和異步的區別? 如何解決跨域問題?
Ajax是多種技術組合起來的一種瀏覽器和服務器交互技術,基本思想是允許一個互聯網瀏覽器向一個遠程頁面/服務做異步的http調用,并且用收到的數據來更新一個當前web頁面而不必刷新整個頁面。該技術能夠改進客戶端的體驗。包含的技術:
XHTML:對應W3C的XHTML規范,目前是XHTML1.0。
CSS:對應W3C的CSS規范,目前是CSS2.0
DOM:這里的DOM主要是指HTML DOM,XML DOM包括在下面的XML中
JavaScript:對應于ECMA的ECMAScript規范
XML:對應W3C的XML DOM、XSLT、XPath等等規范
XMLHttpRequest:對應WhatWG的Web Applications1.0規范(http://whatwg.org/specs/web-apps/current-work/)
AJAX交互模型
同步:腳本會停留并等待服務器發送回復然后再繼續
異步:腳本允許頁面繼續其進程并處理可能的回復
跨域問題簡單的理解就是因為JS同源策略的限制,a.com域名下的JS無法操作b.com或c.a.com下的對象,具體場景如下:
PS:(1)如果是端口或者協議造成的跨域問題前端是無能為力的
(2) 在跨域問題上,域僅僅通過URL的首部來識別而不會嘗試判斷相同的IP地址對應的域或者兩個域是否對應一個IP
前端對于跨域的解決辦法:
(1) document.domain+iframe
(2) 動態創建script標簽
23,請給出異步加載js方案,不少于兩種
默認情況javascript是同步加載的,也就是javascript的加載時阻塞的,后面的元素要等待javascript加載完畢后才能進行再加載,對于一些意義不是很大的javascript,如果放在頁頭會導致加載很慢的話,是會嚴重影響用戶體驗的。
異步加載方式:
(1) defer,只支持IE
(2) async:
(3) 創建script,插入到DOM中,加載完畢后callBack,見代碼:
function loadScript(url, callback){
var script=document.createElement("script")
script.type="text/javascript";
if (script.readyState){ //IE
script.onreadystatechange=function(){
if (script.readyState=="loaded" ||
script.readyState=="complete"){
script.onreadystatechange=null;
callback();
}
};
} else { //Others: Firefox, Safari, Chrome, and Opera
script.onload=function(){
callback();
};
}
script.src=url;
document.body.appendChild(script);
}
25,請設計一套方案,用于確保頁面中JS加載完全。
var n=document.createElement("script");
n.type="text/javascript";
//以上省略部分代碼
//ie支持script的readystatechange屬性(IE support the readystatechange event for script and css nodes)
if(ua.ie){
n.onreadystatechange=function(){
var rs=this.readyState;
if('loaded'===rs || 'complete'===rs){
n.onreadystatechange=null;
f(id,url); //回調函數
}
};
//省略部分代碼
//safari 3.x supports the load event for script nodes(DOM2)
n.addEventListener('load',function(){
f(id,url);
});
//firefox and opera support onload(but not dom2 in ff) handlers for
//script nodes. opera, but no ff, support the onload event for link
//nodes.
}else{
n.onload=function(){
f(id,url);
};
}
26,js中如何定義class,如何擴展prototype?
Ele.className=“***”; //***在css中定義,形式如下:.*** {…}
A.prototype.B=C;
A是某個構造函數的名字
B是這個構造函數的屬性
C是想要定義的屬性的值
27,如何添加html元素的事件,有幾種方法.
(1) 為HTML元素的事件屬性賦值
(2) 在JS中使用ele.on***=function() {…}
(3) 使用DOM2的添加事件的方法 addEventListener或attachEvent
28,documen.write和 innerHTML的區別
document.write只能重繪整個頁面
innerHTML可以重繪頁面的一部分
29,多瀏覽器檢測通過什么?
(1) navigator.userAgent
(2) 不同瀏覽器的特性,如addEventListener
30,js的基礎對象有那些, window和document的常用的方法和屬性列出來
String,Number,Boolean
Window:
方法:setInterval,setTimeout,clearInterval,clearTimeout,alert,confirm,open
屬性:name,parent,screenLeft,screenTop,self,top,status
Document
方法:createElement,execCommand,getElementById,getElementsByName,getElementByTagName,write,writeln
屬性:cookie,doctype,domain,documentElement,readyState,URL,
31,前端開發的優化問題
(1) 減少http請求次數:css spirit,data uri
(2) JS,CSS源碼壓縮
(3) 前端模板 JS+數據,減少由于HTML標簽導致的帶寬浪費,前端用變量保存AJAX請求結果,每次操作本地變量,不用請求,減少請求次數
(4) 用innerHTML代替DOM操作,減少DOM操作次數,優化javascript性能
(5) 用setTimeout來避免頁面失去響應
(6) 用hash-table來優化查找
(7) 當需要設置的樣式很多時設置className而不是直接操作style
(8) 少用全局變量
(9) 緩存DOM節點查找的結果
(10) 避免使用CSS Expression
(11) 圖片預載
(12) 避免在頁面的主體布局中使用table,table要等其中的內容完全下載之后才會顯示出來,顯示比div+css布局慢
32,如何控制網頁在網絡傳輸過程中的數據量
啟用GZIP壓縮
保持良好的編程習慣,避免重復的CSS,JavaScript代碼,多余的HTML標簽和屬性
33,Flash、Ajax各自的優缺點,在使用中如何取舍?
Ajax的優勢
(1) 可搜索型
(2) 開放性
(3) 費用
(4) 易用性
(5) 易于開發
Flash的優勢
(1) 多媒體處理
(2) 兼容性
(3) 矢量圖形 比SVG,Canvas優勢大很多
(4) 客戶端資源調度,比如麥克風,攝像頭
Sdd;d’dsdsdsd
meta主要用于設置網頁中的一些元數據,元數據不是給用戶看 charset 指定網頁的字符集 name 指定的數據的名稱 content 指定的數據的內容
keywords 表示網站的關鍵字,可以同時指定多個關鍵字,關鍵字間使用,隔開
<meta name="Keywords" content="網上購物,網上商城,手機,筆記本,電腦,MP3,CD,VCD,DV,相機,數碼,配件,手表,存儲卡,京東"/>
description 用于指定網站的描述
<meta name="description" content="京東JD.COM-專業的綜合網上購物商城,銷售家電、數碼通訊、電腦、家居百貨、服裝服飾、母嬰、圖書、食品等數萬個品牌優質商品.便捷、誠信的服務,為您提供愉悅的網上購物體驗!"/>
<meta http-equiv="refresh" content="3;url=https://www.mozilla.org">
將頁面重定向到另一個網站
title標簽的內容會作為搜索結果的超鏈接上的文字顯示
<title>Document</title>
header 表示網頁的頭部 main 表示網頁的主體部分(一個頁面中只會有一個main) footer 表示網頁的底部 nav 表示網頁中的導航 aside 和主體相關的其他內容(側邊欄) article 表示一個獨立的文章 section 表示一個獨立的區塊,上邊的標簽都不能表示時使用section
div 沒有語義,就用來表示一個區塊,目前來講div還是我們主要的布局元素
span 行內元素,沒有任何的語義,一般用于在網頁中選中文字
<header></header>
<main></main>
<footer></footer>
<nav></nav>
<aside></aside>
<article></article>
<section></section>
<div></div>
<span></span>
使用ol標簽來創建無序列表,使用li表示列表項
<ul>
<li>結構</li>
<li>表現</li>
<li>行為</li>
</ul>
使用ul標簽來創建無序列表,使用li表示列表項
<ol>
<li>結構</li>
<li>表現</li>
<li>行為</li>
</ol>
使用dl標簽來創建一個定義列表, 使用dt來表示定義的內容,使用dd來對內容進行解釋說明
<dl>
<dt>結構</dt>
<dd>結構表示網頁的結構,結構用來規定網頁中哪里是標題,哪里是段落</dd>
<dd>結構表示網頁的結構,結構用來規定網頁中哪里是標題,哪里是段落</dd>
<dd>結構表示網頁的結構,結構用來規定網頁中哪里是標題,哪里是段落</dd>
</dl>
<ul>
<li>
aa
<ul>
<li>aa-1</li>
<li>aa-2
<ul>
<li>aa-1</li>
<li>aa-2</li>
</ul>
</li>
</ul>
</li>
</ul>
超鏈接可以讓我們從一個頁面跳轉到其他頁面, 或者是當前頁面的其他的位置
使用 a 標簽來定義超鏈接
<a href="https://www.baidu.com">超鏈接</a>
指定跳轉的目標路徑
值可以是一個外部網站的地址
也可以寫一個內部頁面的地址
超鏈接是也是一個行內元素,在a標簽中可以嵌套除它自身外的任何元素
用來指定超鏈接打開的位置
_self 默認值 在當前頁面中打開超鏈接
_blank 在一個新的要么中打開超鏈接
<a href="07.列表.html" target="_blank">超鏈接</a>
將#作為超鏈接的路徑的展位符使用
javascript:; 來作為href的屬性,此時點擊這個超鏈接什么也不會發生
將超鏈接的href屬性設置為#,這樣點擊超鏈接以后 頁面不會發生跳轉,而是轉到當前頁面的頂部的位置
跳轉到頁面的指定位置,只需將href屬性設置 #目標元素的id屬性值
<a href="#bottom">去底部</a>
<br><br>
<a href="#p3">去第三個自然段</a>
<br><br>
<p>
內容多一點
</p>
<a href="#">這是一個新的超鏈接</a>
<br><br>
<a href="javascript:;">這是一個新的超鏈接</a>
<br><br>
<a id="bottom" href="#">回到頂部</a>
img標簽來引入外部圖片,img標簽是一個自結束標簽
屬性:src 屬性指定的是外部圖片的路徑(路徑規則和超鏈接是一樣的)
alt 圖片的描述,這個描述默認情況下不會顯示,有些瀏覽器會圖片無法加載時顯示
<img src="./img/1.gif" alt="松鼠">
用于向當前頁面中引入一個其他頁面
<iframe src="https://www.qq.com" width="800" height="600" frameborder="0"></iframe>
audio 標簽用來向頁面中引入一個外部的音頻文件的
<audio src="./source/audio.mp3" controls autoplay loop></audio>
除了通過src來指定外部文件的路徑以外,還可以通過source來指定文件的路徑
<audio controls>
<!-- 對不起,您的瀏覽器不支持播放音頻!請升級瀏覽器!-->
<source src="./source/audio.mp3">
<source src="./source/audio.ogg">
<embed src="./source/audio.mp3" type="audio/mp3" width="300" height="100">
</audio>
與 audio 相似
<video controls>
<source src="./source/flower.webm">
<source src="./source/flower.mp4">
<embed src="./source/flower.mp4" type="video/mp4">
</video>
<table border="1" width='50%' align="center">
<tr>
<td>A1</td>
<td>B1</td>
<td>C1</td>
<td>D1</td>
</tr>
<tr>
<td>A2</td>
<td>B2</td>
<td>C2</td>
<td rowspan="2">D2</td>
</tr>
<tr>
<td>A3</td>
<td>B3</td>
<td>C3</td>
</tr>
<tr>
<td>A4</td>
<td>B4</td>
<td colspan="2">C4</td>
</tr>
</table>
<table border="1" width='50%' align="center">
<thead>
<tr>
<th>日期</th>
<th>收入</th>
<th>支出</th>
<th>合計</th>
</tr>
</thead>
<tbody>
<tr>
<td>2000.1.1</td>
<td>500</td>
<td>200</td>
<td>300</td>
</tr>
<tr>
<td>2000.1.1</td>
<td>500</td>
<td>200</td>
<td>300</td>
</tr>
<tr>
<td>2000.1.1</td>
<td>500</td>
<td>200</td>
<td>300</td>
</tr>
<tr>
<td>2000.1.1</td>
<td>500</td>
<td>200</td>
<td>300</td>
</tr>
</tbody>
<tfoot>
<tr>
<td></td>
<td></td>
<td>合計</td>
<td>300</td>
</tr>
</tfoot>
</table>
border-spacing: 0px;
border-collapse: collapse;
<input type="text" name="username">
<input type="radio" name="hello" value="a">
<input type="radio" name="hello" value="b" checked>
<input type="checkbox" name="test" value="1">
<input type="checkbox" name="test" value="2">
<input type="checkbox" name="test" value="3" checked>
<select name="haha">
<option value="i">選項一</option>
<option selected value="ii">選項二</option>
<option value="iii">選項三</option>
</select>
<input type="submit" value="注冊">
<form action="target.html">
<input type="text" name="username" value="hello" readonly>
<br><br>
<input type="text" name="username" autofocus>
<br><br>
<input type="text" name="b">
<br><br>
<!-- <input type="color"> -->
<br><br>
<!-- <input type="email"> -->
<br><br>
<input type="submit">
<!-- 重置按鈕 -->
<input type="reset">
<!-- 普通的按鈕 -->
<input type="button" value="按鈕">
<br><br>
<button type="submit">提交</button>
<button type="reset">重置</button>
<button type="button">按鈕</button>
</form>
<!--
我是注釋中的注釋 注釋不能嵌套
-->
<!doctype html>
*請認真填寫需求信息,我們會在24小時內與您取得聯系。