第一百三十節,JavaScript,封裝庫--連綴

JavaScript,封裝庫--連綴

?

?

學習要點:

1.連綴介紹

2.改寫庫對象

?

本章我們重點來介紹,在調用庫的時候,我們需要能夠在前臺調用的時候可以同時設置多個操作,比如設置CSS,設置innerHTML,設置click事件等等。那么本節課來討論這個問題。

?

一.連綴介紹

所謂連綴,最簡單的理解就是一句話同時設置一個或多個節點兩個或兩個以上的操作。比如:

$().getId('box').css('color', 'red').html('標題').click(function () {alert('a')});

連綴的好處,就是快速方便的設置節點的操作。

?

二.改寫庫對象

如果是實現操作連綴,那么我們就需要改寫上一節課的對象寫法:var Base = {},這種寫法無法在它的原型中添加方法,所以需要使用函數式對象寫法:

封裝庫代碼

/***feng_zhuang_ku_1.0版本,js封裝庫,2016/12/29日:林貴秀**//** 每次調用$創建庫對象,使其每次調用都是獨立的對象**/
var $ = function () {return new feng_zhuang_ku();
};/***定義封裝庫構造函數,創建庫對象**/
function feng_zhuang_ku () {/**對象說明:* this表示對象本身* 使用庫,首先要  var $ = new feng_zhuang_ku();   首先要new創建對象* 再在創建的對象下調用方法或者屬性* * 大綱:* 獲取元素標簽開始,行號18* 連綴-元素節點操作開始,行號64* * **//**------------------------------------------------獲取元素標簽開始--------------------------------------------**//**獲取元素標簽說明:* jie_dian屬性,保存獲取到的元素節點,返回數組,* huo_qu_id()方法,通過id獲取元素標簽,適用于獲取單個節點,* huo_qu_name_zhi()方法,通過元素name值獲取指定元素,適用于獲取表單元素,* huo_qu_name()方法,通過標簽名稱獲取相同標簽名的元素,適用于獲取多個相同元素節點,**//** jie_dian屬性,創建數組,初始化,保存獲取到的元素節點,返回數組**/this.jie_dian = [];/** huo_qu_id()方法,通過id獲取元素標簽,參數是id值,將獲取到的元素對象添加到,jie_dian屬性,適用于獲取單個節點**/this.huo_qu_id = function (id) {this.jie_dian.push(document.getElementById(id));return this;};/** huo_qu_name_zhi()方法,通過元素name值獲取指定元素,參數是元素name值,返回元素相同name值對象集合,* 循環元素集合,將每次循環到的元素對象添加到 jie_dian屬性,適用于獲取表單元素**/this.huo_qu_name_zhi = function (name) {var name_zhi = document.getElementsByName(name);for (var i = 0; i < name_zhi.length; i ++){this.jie_dian.push(name_zhi[i]);}return this;};/** huo_qu_name()方法,通過標簽名稱獲取相同標簽名的元素,參數是標簽名稱,返回對象集合* 循環元素集合,將每次循環到的元素對象添加到 jie_dian屬性,適用于獲取多個相同元素節點**/this.huo_qu_name = function (tag) {var name = document.getElementsByTagName(tag);for (var i = 0; i < name.length; i ++){this.jie_dian.push(name[i]);}return this;};/**------------------------------------------------獲取元素標簽結束--------------------------------------------**//**------------------------------------------------連綴-元素節點操作開始---------------------------------------**//**連綴-元素節點操作說明:* css()方法,給獲取到的元素設置行內css樣式* wen_ben()方法,給獲取到的元素設置文本,參數是要設置的文本字符串* click()方法,給獲取到的元素添加一個點擊事件,參數是一個匿名函數(包含函數功能),**//** css()方法,給獲取到的元素設置行內css樣式,兩個參數,參數1樣式名稱,參數2樣式值* 循環jie_dian屬性里的節點,將每次循環的節點添加css樣式**/this.css = function (attr,value) {for (var i = 0; i < this.jie_dian.length; i ++){this.jie_dian[i].style[attr] = value;}return this;};/** wen_ben()方法,給獲取到的元素設置文本,參數是要設置的文本字符串,* 循環jie_dian屬性里的節點,將每次循環的節點添加元素文本**/this.wen_ben = function (str) {for (var i = 0; i < this.jie_dian.length; i ++){this.jie_dian[i].innerHTML = str;}return this;};/** click()方法,給獲取到的元素添加一個點擊事件,參數是一個匿名函數(包含函數功能),* 循環jie_dian屬性里的節點,將每次循環的節點添加元素點擊事件**/this.click = function (fu) {for (var i = 0; i < this.jie_dian.length; i ++){this.jie_dian[i].onclick = fu;}return this;};/**------------------------------------------------連綴-元素節點操作結束---------------------------------------**/
}

前臺調用代碼

//前臺調用代碼
window.onload = function (){$().huo_qu_name('div').css('background-color','#ffff3e');$().huo_qu_name('p').css('color','#ff2128').css('background-color','#b2bbff').wen_ben('改變').click(function () {alert('a');});
};

?

轉載于:https://www.cnblogs.com/adc8868/p/6233599.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/373164.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373164.shtml
英文地址,請注明出處:http://en.pswp.cn/news/373164.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Spring3:類型安全依賴項注入

在從Spring跳到類型安全依賴注入之前&#xff0c;我想討論一下我們之前所做的方式。 我們一直在借助Spring的Autowired注釋按類型使用依賴項注入。 像這樣的東西會注入Spring Bean。 Autowired private StudentDao studentDao; // Autowires by type. Injects the instance who…

userData IE

蠻討厭IE的&#xff0c;因為他常常需要特別照顧&#xff0c;就像DOM Storage(sessionStorage和localStorage)只能支持IE8&#xff0c;對于以下的只能使用userData。 原理&#xff1a;通過在document元素后面附加一個專屬的“DHTML行為”來實現客戶端存儲&#xff0c; var memor…

context元素大概解說

Context元素代表一個web應用&#xff0c;運行在某個特定的虛擬主機上。如Servlet Specification 2.2或以后版本中描述的那樣&#xff0c;每個web應用基于一個Web Application Archive(WAR)文件&#xff0c;或者是一個目錄&#xff0c;包含WAR文件解壓后的內容。有關Web Applica…

全新的Play模塊資料庫

去年11月&#xff0c;我曾與Play框架的 Nicolas Leroux談過創建模塊存儲庫的問題。 他同意這將是一個好主意&#xff0c;但是時間不足使我無法開始。 在上周Google Play小組發生了暴風雨之后&#xff0c;我決定將其優先處理。 可以在幾周內提供可工作的原型。 概述&#xff1a;…

Ubuntu 16.04 安裝 VMware-Workstation-12

以前一直使用 Ubuntu Virtaulbox &#xff0c;最近測試了 VMware-Workstation-9,性能超過 Virtaulbox-4.2.x,下面是詳細步驟:1 首先準備一個Ubuntu 系統 lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04 LTS Release: 16.04 …

Linux的md64進程,在Linux上安裝Elasticsearch Kibaba.md(示例代碼)

在Linux上安裝Elasticsearch KibabaKibana是一個開源為elasticsearch 引擎提供數據和數據分析1、下載安裝切換到root賬戶&#xff0c;按順序依次執行以下命令rpm包安裝$wget -c https://artifacts.elastic.co/downloads/kibana/kibana-5.5.3-x86_64.rpm$sha1sum kibana-5.3.2-x…

SSH實戰 · 唯唯樂購項目(中)

用戶模塊三&#xff1a;一級分類的查詢創建一級分類表并導入基本數據CREATE TABLE category (cid int(11) NOT NULL AUTO_INCREMENT,cname varchar(255) DEFAULT NULL,PRIMARY KEY (cid)) ENGINEInnoDB AUTO_INCREMENT11 DEFAULT CHARSETutf8;建包及相應的類:com.weiwei.shoppi…

播放2 –模塊,插件有什么區別?

關于Play 2模塊和插件似乎有些混亂。 我想這是因為兩者經常是同義詞。 在Play&#xff08;兩個版本-1和2&#xff09;中&#xff0c;存在明顯的差異。 在本文中&#xff0c;我將介紹什么是插件&#xff0c;如何在Java和Scala中實現插件&#xff0c;以及如何從模塊導入插件。 外…

Linux多線程貝葉斯建樹教程,建樹經驗.doc

建樹經驗分子進化樹構建及數據分析的簡介mediocrebeing, rodger, lylover, klaus, oldfish, yzwpf一、引言開始動筆寫這篇短文之前&#xff0c;我問自己&#xff0c;為什么要寫這樣的文章&#xff1f;寫這樣的文章有實際的意義嗎&#xff1f;我希望能夠解決什么樣的問題&#x…

Android的IPC機制(一)——AIDL的使用

綜述 IPC(interprocess communication)是指進程間通信&#xff0c;也就是在兩個進程間進行數據交互。不同的操作系統都有他們自己的一套IPC機制。例如在Linux操作系統中可以通過管道、信號量、消息隊列、內存共享、套接字等進行進程間通信。那么在Android系統中我們可以通過Bin…

python學習筆記(python介紹)

為什么要學python&#xff1f; python和shell的比較&#xff0c;和PHP、和JAVA比較 運維開發只是用到python的很小一部分 python在一些知名公司的應用&#xff1a; 谷歌&#xff1a;python的創始人原來在谷歌工作。 CIA&#xff1a;美國中情局網站用python開發的 NASA&#xff…

Netty:透明地使用SPDY和HTTP

大多數人已經從谷歌那里聽說過SPDY&#xff0c;該協議被提議作為老化的HTTP協議的替代品。 Web服務器是瀏覽器正在緩慢地實現該協議&#xff0c;并且支持正在增長。 在最近的文章中&#xff0c;我已經寫過SPDY的工作方式以及如何在Jetty中啟用SPDY支持。 由于Netty&#xff08;…

selenium 等待頁面加載完成

一、隱形加載等待&#xff1a; file:///C:/Users/leixiaoj/Desktop/test.html 該頁面負責創建一個div <html> <head><title>Set Timeout</title><style>.red_box {background-color: red; width 20%; height:100px; border: none;}</style&…

linux nfsnobody用戶,處理CentOS 5.5 x64 配置NFS服務過程中nfsnobody用戶造成的問題

4、我們編譯一下這個NFS的配置文件。[rootNFS /]# vi /etc/exports/share 192.168.60.0/24(rw,sync,all_squash,root_squash) (我們允許這個共享對192.168.60.0/24網段可讀可寫&#xff0c;且將所有訪問者包括root的身份都改為nfsnobody)[rootNFS /]# /etc/init.d/nfs resta…

計算機語言

軟件&#xff1a;是一系列按照特定順序組織的計算機數據和指令的集合。一般來講軟件被劃分為系統軟件、應用軟件和介于這兩者之間的中間件。 系統軟件 系統軟件是各類操作系統&#xff0c;如windows、Linux、UNIX等&#xff0c;還包括操作系統的補丁程序及硬件驅動程序&#xf…

Apache Shiro第2部分–領域,數據庫和PGP證書

這是致力于Apache Shiro的系列文章的第二部分。 我們從簡單的不安全Web應用程序開始了上一部分 。 完成后&#xff0c;該應用程序具有基本的身份驗證和授權。 用戶可以登錄和注銷。 所有網頁和按鈕均已分配和實施訪問權限。 授權和身份驗證數據都已存儲在靜態配置文件中。 正如…

js中變量作用域的小理解

一&#xff1a;變量作用域 在js代碼中每個變量都是有自己的作用域的&#xff0c;js中不像C語言有塊級作用域的概念&#xff0c;取而代之的是函數作用域&#xff0c;看如下代碼&#xff1a; var scope"global"; function init(){ alert(scope);var scope "local…

安卓linux開機畫面,Android系統的開機畫面顯示過程分析(1)

好幾個月都沒有更新過博客了&#xff0c;從今天開始&#xff0c;老羅將嘗試對Android系統的UI實現作一個系統的分析&#xff0c;也算是落實之前所作出的承諾。提到Android系統的UI&#xff0c;我們最先接觸到的便是系統在啟動過程中所出現的畫面了。Android系統在啟動的過程中&…

如果你的NavigationDrawer里面的Item沒有響應,Drawer不能左滑關閉

如果你的NavigationDrawer里面的Item沒有響應&#xff0c;Drawer不能左滑關閉&#xff0c;應該是因為你沒有把主要內容放在DrawerLayout標簽下的第一位。 The main content view (the FrameLayout above) must be the first child in the DrawerLayout because the XML order i…

JAXB和未映射的屬性

JAXB&#xff08;JSR-222&#xff09;是例外配置&#xff0c;這意味著存在默認映射應用于域對象。 這意味著有時您需要顯式排除字段/屬性。 在本文中&#xff0c;我將討論如何使用XmlTransient或XmlAccessorType&#xff08;XmlAccessType.NONE&#xff09;以及何時使用每個選項…