!doctype?html
都昌網(wǎng)站建設公司創(chuàng)新互聯(lián),都昌網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為都昌成百上千提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設要多少錢,請找那個售后服務好的都昌做網(wǎng)站的公司定做!
html
head
meta?charset="utf-8"
title插入在第一位/title??
style?type="text/css"
.content{?padding:0;?margin:0;}
.content?ul?li{??list-style:none;?width:100px;?height:30px;?text-align:center;?background:#063;?color:#fff;?margin-bottom:3px;?line-height:30px;}
/style
script?type="text/javascript"?src=""/script
script?type="text/javascript"
$(document).ready(function(e)?{
//append是直接插入在內(nèi)容的最后面,不能換位置,如果一定要append做有序在最后,只能先用數(shù)據(jù)html+="li插入在第一位/li",先連接上,最后在一次append加入(深圳網(wǎng)站建設)
?$("#btn_first").click(function(){
???//before插入到選擇到的元素之前
???$(".content?ul?li:first").before("li插入在第一位/li"); ?
?
?});
??$("#btn_two").click(function(){
?//before插入到選擇到的元素之后
???$(".content?ul?li:first").after("li插入在第二位/li"); ?
?
?});
});
/script
/head
body???
div?class="content"
ul
li原來的位置/li
/ul
/div
input?type="button"?value="插入在第一位"?id="btn_first"?/br
input?type="button"?value="插入在第二位"??id="btn_two"??/
/body
/html
思路:
1、利用jquery選擇器獲取li數(shù)組和ul節(jié)點
2、通過數(shù)組的sort方法對li進行排序
3、根據(jù)ul節(jié)點,清空原來li,再把排序后的li節(jié)點添加進去
代碼:
script
function?onTest(){
var?arr?=???$('li');
arr.sort(function(a,b){
return?a.innerHTMLb.innerHTML?1:-1;
});//對li進行排序,這里按照從小到大排序
$('ul').empty().append(arr);//清空原來內(nèi)容添加排序后內(nèi)容。
}
/script
/head
body
ul
lib/li
lia/li
lid/li
lic/li
/ul
a??onclick="onTest();"按鈕/a
/body
/html
!doctype?html
html
head
meta?charset="utf-8"
titleselect/title
!--直接用each循環(huán),出來所有的select,就可以,再直接得到值就可以了,深圳網(wǎng)站建設:)--
script?type="text/javascript"?src=""/script
script?type="text/javascript"
$(document).ready(function(e)?{?
$("#btn").click(function(){
$.each($("select"),function(index,item){
?
??console.log("第"+(index+1)+"個select的值"+$(item).val()); ?
?
?})
});
});
/script
/head
body
select
option?value="獨占網(wǎng)絡"獨占網(wǎng)絡/option
option?value="深圳網(wǎng)站建設"深圳網(wǎng)站建設/option
/select
select
option?value="獨占網(wǎng)絡"獨占網(wǎng)絡/option
option?value="深圳網(wǎng)站建設"?selected深圳網(wǎng)站建設/option
/select
select
option?value="獨占網(wǎng)絡"獨占網(wǎng)絡/option
option?value="深圳網(wǎng)站建設"?selected深圳網(wǎng)站建設/option
/select
select
option?value="獨占網(wǎng)絡"獨占網(wǎng)絡/option
option?value="深圳網(wǎng)站建設"深圳網(wǎng)站建設/option
/select
input?type="button"?value="得到值"??id="btn"?class="btns"/
/body
/html
分別使用javascript原生的方法和jquery方法
select id="test" name=""
option value="1"text1/option
option value="2"text2/option
/select
code:
一:javascript原生的方法
1:拿到select對象: var myselect=document.getElementById("test");
2:拿到選中項的索引:var index=myselect.selectedIndex ; // selectedIndex代表的是你所選中項的index
3:拿到選中項options的value: myselect.options[index].value;
4:拿到選中項options的text: myselect.options[index].text;
二:jquery方法(前提是已經(jīng)加載了jquery庫)
1:var options=$("#test option:selected"); //獲取選中的項
2:alert(options.val()); //拿到選中項的值
3:alert(options.text()); //拿到選中項的文本
JQuery是繼prototype之后又一個優(yōu)秀的Javascript庫。它是輕量級的js庫 ,它兼容CSS3,還兼容各種瀏覽器(IE 6.0+, FF1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0及后續(xù)版本將不再支持IE6/7/8瀏覽器。jQuery使用戶能更方便地處理HTML(標準通用標記語言下的一個應用)、events、實現(xiàn)動畫效果,并且方便地為網(wǎng)站提供AJAX交互。jQuery還有一個比較大的優(yōu)勢是,它的文檔說明很全,而且各種應用也說得很詳細,同時還有許多成熟的插件可供選擇。jQuery能夠使用戶的html頁面保持代碼和html內(nèi)容分離,也就是說,不用再在html里面插入一堆js來調(diào)用命令了,只需要定義id即可。
jQuery是一個兼容多瀏覽器的javascript庫,核心理念是write less,do more(寫得更少,做得更多)。jQuery在2006年1月由美國人John Resig在紐約的barcamp發(fā)布,吸引了來自世界各地的眾多JavaScript高手加入,由Dave Methvin率領團隊進行開發(fā)。如今,jQuery已經(jīng)成為最流行的javascript庫,在世界前10000個訪問最多的網(wǎng)站中,有超過55%在使用jQuery。
jQuery是免費、開源的,使用MIT許可協(xié)議。jQuery的語法設計可以使開發(fā)更加便捷,例如操作文檔對象、選擇DOM元素、制作動畫效果、事件處理、使用Ajax以及其他功能。除此以外,jQuery提供API讓開發(fā)者編寫插件。其模塊化的使用方式使開發(fā)者可以很輕松的開發(fā)出功能強大的靜態(tài)或動態(tài)網(wǎng)頁。
jQuery,顧名思義,也就是JavaScript和查詢(Query),即是輔助JavaScript開發(fā)的庫。
歷史
大概在 1992 年,一家稱作 Nombas 的公司開發(fā)了一種叫做 C 減減(C-minus-minus,簡稱 Cmm)的嵌入式腳本語言。Cmm 背后的理念很簡單:一個足夠強大可以替代宏操作(macro)的腳本語言,同時保持與 C (和 C ++)足夠的相似性,以便開發(fā)人員能很快學會。這個腳本語言捆綁在一個叫做 CEnvi 的共享軟件中,它首次向開發(fā)人員展示了這種語言的威力。
Nombas 最終把 Cmm 的名字改成了 ScriptEase,原因是后面的部分(mm)聽起來過于消極,同時字母 C “令人害怕”。
當 Netscape Navigator 嶄露頭角時,Nombas 開發(fā)了一個可以嵌入網(wǎng)頁中的 CEnvi 的版本。這些早期的試驗被稱為 Espresso Page(濃咖啡般的頁面),它們代表了第一個在萬維網(wǎng)上使用的客戶端語言。而 Nombas 絲毫沒有料到它的理念將會成為萬維網(wǎng)的一塊重要基石。
當網(wǎng)上沖浪越來越流行時,對于開發(fā)客戶端腳本的需求也逐漸增大。此時,大部分因特網(wǎng)用戶還僅僅通過 28.8 kbit/s 的調(diào)制解調(diào)器連接到網(wǎng)絡,即便這時網(wǎng)頁已經(jīng)不斷地變得更大和更復雜。而更加加劇用戶痛苦的是,僅僅為了簡單的表單有效性驗證,就要與服務器進行多次地往返交互。設想一下,用戶填完一個表單,點擊提交按鈕,等待了 30 秒的處理后,看到的卻是一條告訴你忘記填寫一個必要的字段。
那時正處于技術革新最前沿的 Netscape,開始認真考慮開發(fā)一種客戶端腳本語言來解決簡單的處理問題。
當時工作于 Netscape 的 Brendan Eich,開始著手為即將在 1995 年發(fā)行的 Netscape Navigator 2.0 開發(fā)一個稱之為 LiveScript 的腳本語言,當時的目的是在瀏覽器和服務器(本來要叫它 LiveWire)端使用它。Netscape 與 Sun 及時完成 LiveScript 實現(xiàn)。
就在 Netscape Navigator 2.0 即將正式發(fā)布前,Netscape 將其更名為 JavaScript,目的是為了利用 Java 這個因特網(wǎng)時髦詞匯。Netscape 的賭注最終得到回報,JavaScript 從此變成了因特網(wǎng)的必備組件。
因為 JavaScript 1.0 如此成功,Netscape 在 Netscape Navigator 3.0 中發(fā)布了 1.1 版。恰巧那個時候,微軟決定進軍瀏覽器,發(fā)布了 IE 3.0 并搭載了一個 JavaScript 的克隆版,叫做 JScript(這樣命名是為了避免與 Netscape 潛在的許可糾紛)。微軟步入 Web 瀏覽器領域的這重要一步雖然令其聲名狼藉,但也成為 JavaScript 語言發(fā)展過程中的重要一步。
在微軟進入后,有 3 種不同的 JavaScript 版本同時存在:Netscape Navigator 3.0 中的 JavaScript、IE 中的 JScript 以及 CEnvi 中的 ScriptEase。與 C 和其他編程語言不同的是,JavaScript 并沒有一個標準來統(tǒng)一其語法或特性,而這 3 種不同的版本恰恰突出了這個問題。隨著業(yè)界擔心的增加,這個語言的標準化顯然已經(jīng)勢在必行。
2006年1月,jQuery的第一個版本面世,至今已經(jīng)有10年多了(注:這個時間點是截止至出書時間)。雖然過了這么久,但它依然以其簡潔、靈活的編程風格讓人一見傾心。在本篇文章中,我們將講述jQuery的發(fā)展 歷史 ,讓讀者對jQuery有更多的了解。
在jQuery迅速發(fā)展的同時,一些大的廠商也看中了商機。2009年9月,微軟和諾基亞公司正式宣布支持開源的jQuery庫,另外,微軟公司還宣稱他們將把jQuery作為Visual Studio工具集的一部分。他將提供包括jQuery的智能提示、代碼片段、示例文檔編制等內(nèi)容在內(nèi)的功能。微軟和諾基亞公司將長期成為jQuery的用戶成員,其他成員還有Google,Intel,IBM,Intuit等公司。
2009年1月,jQuery 1.3版發(fā)布,它使用了全新的選擇符引擎Sizzle,在各個瀏覽器下全面超越其他同類型JavaScript框架的查詢速度,程序庫的性能也因此有了極大提升。這一版本的第2個變化就是提供live()方法,使用live()方法可以為當前及將來增加的元素綁定事件,在1.3版之前,如果要為將來增加的元素綁定事件,需要使用livequery插件,而在1.3版中,可以直接用live()方法。 2005年8月,John Resig提議改進Prototype的“Behaviour”庫,于是他在blog上發(fā)表了自己的想法,并用了3個例子做說明。
2010年2月,jQuery 1.4.2版發(fā)布,它新增了有關事件委托的兩個方法:delegate()和undelegate()。delegate()用于替代1.3.2中的live()方法。這個方法比live()來的方便,而且也可以達到動態(tài)添加事件的作用。比如給表格的每個td綁定hover事件
特點
1.動態(tài)特效
2.AJAX
3.通過插件來擴展
4.方便的工具 - 例如瀏覽器版本判斷
5.漸進增強
6.鏈式調(diào)用
7.多瀏覽器支持,支持Internet Explorer6.0+、Opera9.0+、Firefox2+、Safari2.0+、Chrome1.0+(在2.0.0中取消了對Internet Explorer6,7,8的支持)
歷史 版本
jQuery 1.0
(2006年8月):該庫的第一個穩(wěn)定版本,已經(jīng)具有了對CSS選擇符、事件處理和AJAX交互的穩(wěn)健支持。
jQuery 1.1
(2007年1月):這一版大幅簡化了API。許多較少使用的方法被合并,減少了需要掌握和解釋的方法數(shù)量。
jQuery 1.1.3
(2007年7月):這次小版本變化包含了對jQuery選擇符引擎執(zhí)行速度的顯著提升。從這個版本開始,jQuery的性能達到了Prototype、Mootools以及Dojo等同類JavaScript庫的水平。
jQuery 1.2
(2007年9月):這一版去掉了對XPath選擇符的支持,原因是相對于CSS語法它已經(jīng)變得多余了。這一版能夠支持對效果的更靈活定制,而且借助新增的命名空間事件,也使插件開發(fā)變得更容易。
jQuery UI(2007年9月):這個新的插件套件是作為曾經(jīng)流行但已過時的Interface插件的替代項目而發(fā)布的。jQuery UI中包含大量預定義好的部件(widget),以及一組用于構建高級元素(例如可拖放的界面元素)的工具。
jQuery 1.2.6
(2008年5月):這一版主要是將Brandon Aaron開發(fā)的流行的Dimensions插件的功能移植到了核心庫中。
jQuery 1.3
(2009年1月):這一版使用了全新的選擇符引擎Sizzle,庫的性能也因此有了極大提升。這一版正式支持事件委托特性。
jQuery 1.3.2
(2009年2月):這次小版本升級進一步提升了庫的性能,例如改進了:visible/:hidden選擇符、.height()/.width()方法的底層處理機制。另外,也支持查詢的元素按文檔順序返回。
jQuery 1.4
(2010年1月14號):對代碼庫進行了內(nèi)部重寫組織,開始建立一些風格規(guī)范。老的core.js文件被分為attribute.js,css.js,data.js,manipulation.js,traversing.js和queue.js;CSS和attribute的邏輯分離。
重要變化:
1. Ajax重寫
Ajax模塊完全進行了重寫。新增一個jXHR對象,為不同瀏覽器內(nèi)置的XMLHttpRequest提供了一致的超集。對于XMLHttpRequest之外的傳輸機制,比如JSONP請求,jXHR對象也可以進行處理。(詳情可以參見:jQuery.ajax文檔)
此外,系統(tǒng)的可擴展性大大增強,可以附加各種數(shù)據(jù)處理器、過濾器和傳輸機制,為開發(fā)新的Ajax插件提供了方便。
2. 延遲對象
延遲對象(Deferred Object,jQuery.Deferred對象)是一個可鏈接的(chainable)實用工具對象,實現(xiàn)了Promise接口,可以在回調(diào)隊列中注冊多個回調(diào)、調(diào)用回調(diào)隊列并轉(zhuǎn)發(fā)任何同步/異步函數(shù)的成敗狀態(tài)。正如Using Deferreds in jQuery 1.5一文中說明的,其結果是在jQuery中能夠?qū)⒁蕾囉谀硞€任務(事件)結果的邏輯與任務本身解耦了。這一點在JavaScript中其實并不新鮮,Mochikit和Dojo等已經(jīng)實現(xiàn)有些日子了。由于jQuery 1.5的Ajax模塊內(nèi)置使用了延遲對象,因此通過jQuery編寫Ajax程序?qū)⒆詣荧@得這一功能。
開發(fā)人員借此可以使用無法立即獲得的返回值(如異步Ajax請求的返回結果),而且第一次能夠附加多個事件處理器。
例如,使用了新的jQuery內(nèi)部Ajax API就可以實現(xiàn)下面的代碼了:
// Assign handlers immediately after making the request,// and remember the jxhr object for this request var jxhr = $.ajax({ url: "example.php" }) .success(function() { alert("success"); }) .error(function() { alert("error"); }) .complete(function() { alert("complete"); });// perform other work here ... // Set another completion function for the request above jxhr.complete(function(){ alert("second complete"); });
此外,使用jQuery.Deferred還可以開發(fā)自己的延遲對象。更多詳情參見:延遲對象文檔。
3. jQuery.sub()
jQuery 1.5提供了一種創(chuàng)建和修改jQuery副本的方式。可以用來添加不向外部公開的方法,或者對jQuery的某些方法進行重新定義以提供新功能,或者提供更好的封裝、避免名稱空間沖突。當然,也可以用來開發(fā)插件,但Resig強烈建議在開發(fā)插件之前,先考慮jQuery UI widget工廠。
值得注意的是,sub函數(shù)并不提供真正的隔離,所有方法、數(shù)據(jù)、調(diào)用仍然依靠jQuery本身來支持。
4. 遍歷性能提高
在新版本中.children(),.prev(),.next()幾個常用的遍歷函數(shù)性能有了顯著提高。
5. 內(nèi)部開發(fā)系統(tǒng)
John Resig還特別提到了jQuery團隊內(nèi)部開發(fā)系統(tǒng)的兩點改變:一是服務器端用Node.js替換了老的Java/Rhino系統(tǒng),使得團隊可以專注于JavaScript環(huán)境的新變化;二是所用的代碼優(yōu)化程序從Google Closure切換到UglifyJS,新工具的壓縮效果非常令人滿意。
使用方法
jQuery可以下載使用,有兩個版本的 jQuery 可供下載
Production version - 用于實際的網(wǎng)站中,已被精簡和壓縮。
Development version - 用于測試和開發(fā)(未壓縮,是可讀的代碼)
jQuery 1.8.0版時壓縮前后的對比
插件機制
jQuery的官方插件是jQuery UI。開發(fā)者可以任意擴展jQuery的函數(shù)庫或者按照自己的需求開發(fā)UI組件。網(wǎng)上已經(jīng)有數(shù)以萬計的jQuery插件,覆蓋各種各樣的需求。例如Ajax輔助、數(shù)據(jù)表格、動態(tài)列表、XML工具、拖曳、cookie處理、彈出層等等。jQuery 的文檔說明很全,而且各種應用也說得很詳細,同時還有許多成熟的插件可供選擇,例如ComponentOne Studio for ASP NET Wijmo.
隨著jQuery插件在網(wǎng)站建設過程中的使用率不斷的增加,所以有必要跟進時代步伐開發(fā)出一些新的插件/代碼片段,以此來鞏固并提高前端用戶體驗,將用戶體驗提升到一個新的高度。其中包括Flat jQuery Price Slider、Gmaps jQuery Map Plugin 、FormChimp——MailChimp Ajax plugin for jQuery 等。
控件
jQuery Gantt控件是一個基于原生HTML5/jQuery,功能豐富的控件,該控件真正實現(xiàn)了跨平臺,在許多設備和瀏覽器中無縫的運行。
使用項目甘特圖中內(nèi)置的調(diào)度,依賴等功能實現(xiàn)任務分層列表的可視化。
使用資源甘特圖實現(xiàn)一個資源利用視圖。
使用基于API的jQuery或者基于API的MVC可幫您輕松地安裝甘特圖并加快應用速度。
可與諸如KnockOut(KO),jQuery.tmpl等流行的jQuery模式一同使用。
采用Jquery實現(xiàn)的列表數(shù)據(jù)動態(tài)更新效果,更新的數(shù)據(jù)可以是ajax請求的數(shù)據(jù)。
CSS:
.main
{
width:
100%;
margin-top:
100px;
text-align:
center;
font-size:
12.5px;
}
th,
td
{
border:
1px
solid
#ccc;
line-height:
40px;
padding-left:
5px;
}
.item:hover
{
background-color:
#efefef;
}
.item:nth-child(2n)
{
background-color:
#efefef;
}
.ListView
{
width:
600px;
overflow:
hidden;
margin:
auto;
padding:
10px;
height:372px;
border:
1px
solid
#dddddd;
}
.ListView
.c
{
width:
1200px;
margin:
auto;
border-collapse:
collapse;
}
.Item
{
border-bottom:
1px
dashed
#dddddd;
padding:
10px
10px
0;
overflow:
hidden;
margin-left:600px;
}
.Item
span
{
float:
left;
text-align:
left;
}
.Item
span:first-child
{
color:
#6AA8E8;
}
.Item
span:last-child
{
text-align:
center;
}
HTML
div
class="main"
div
class="ListView"
div
class="c"
div
class="Item"
spantest/span
span男/0/span
span四川省,成都市,錦江區(qū)/span
span詳細說明/span
/div
div
class="Item"
spantest/span
span男/0/span
span四川省,成都市,錦江區(qū)/span
span詳細說明/span
/div
div
class="Item"
spantest/span
span男/0/span
span四川省,成都市,錦江區(qū)/span
span詳細說明/span
/div
div
class="Item"
spantest/span
span男/0/span
span四川省,成都市,錦江區(qū)/span
span詳細說明/span
/div
div
class="Item"
spantest/span
span男/0/span
span四川省,成都市,錦江區(qū)/span
span詳細說明/span
/div
div
class="Item"
spantest/span
span男/0/span
span四川省,成都市,錦江區(qū)/span
span詳細說明/span
/div
div
class="Item"
spantest/span
span男/0/span
span四川省,成都市,錦江區(qū)/span
span詳細說明/span
/div
div
class="Item"
spantest/span
span男/0/span
span四川省,成都市,錦江區(qū)/span
span詳細說明/span
/div
div
class="Item"
spantest/span
span男/0/span
span四川省,成都市,錦江區(qū)/span
span詳細說明/span
/div
div
class="Item"
spantest/span
span男/0/span
span四川省,成都市,錦江區(qū)/span
span詳細說明/span
/div
/div
/div
/div
p
style="text-align:center;"a
href="javascript:void(0);"
onClick="ListView.Update();"刷新數(shù)據(jù)/a/p
JS
script
type="text/javascript"
src="/js/jquery-1.8.0.min.js"/script
script
type="text/javascript"
$(function(){
ListView.Init();
});
var
ListView={
Init:function(){
$(".Item
span").css("width",$(".ListView").width()/4+"px");
for(var
i=0;i$(".Item").length;i++){
var
target=$(".Item")[i];
$(target).animate({marginLeft:"0px"},300+i*100);
}
},
Update:function(){
$(".ListView
.c
.Item").remove();
for(var
i=0;i10;i++){
var
newItem=$("div
class=\"Item\"
spantest/span
span男/"+i+"/span
span四川省,成都市,錦江區(qū)/span
span詳細說明/span
/div");
$(newItem).find("span").css("width",$(".ListView").width()/4+"px");
$(".ListView
.c").append(newItem);
$(newItem).animate({marginLeft:"0px"},300+i*100);
}
}
}
/script
附上演示效果
效果是不是非常棒呢,接下來我們再來看看瀑布流的實現(xiàn)思路和js控制動態(tài)加載的代碼
下面的代碼主要是控制滾動條下拉時的加載事件的
在下面代碼說明出,寫上你的操作即可,無論是加載圖片還是加載記錄數(shù)據(jù)
都可以
別忘了引用jquery類庫
$(window).scroll(function
()
{
var
scrollTop
=
$(this).scrollTop();
var
scrollHeight
=
$(document).height();
var
windowHeight
=
$(this).height();
if
(scrollTop
+
windowHeight
==
scrollHeight)
{
//此處是滾動條到底部時候觸發(fā)的事件,在這里寫要加載的數(shù)據(jù),或者是拉動滾動條的操作
//var
page
=
Number($("#redgiftNextPage").attr('currentpage'))
+
1;
//redgiftList(page);
//$("#redgiftNextPage").attr('currentpage',
page
+
1);
}
});
解析:
判斷滾動條到底部,需要用到DOM的三個屬性值,即scrollTop、clientHeight、scrollHeight。
scrollTop為滾動條在Y軸上的滾動距離。
clientHeight為內(nèi)容可視區(qū)域的高度。
scrollHeight為內(nèi)容可視區(qū)域的高度加上溢出(滾動)的距離。
從這個三個屬性的介紹就可以看出來,滾動條到底部的條件即為scrollTop
+
clientHeight
==
scrollHeight。(兼容不同的瀏覽器)。