java學習

          java學習

           

          js日期類

          /**
          * 日期處理工具類
          */

          var DateUtil = function(){

              /**
               * 判斷閏年
               * @param date Date日期對象
               * @return boolean true 或false
               
          */
              this.isLeapYear = function(date){
                  return (0==date.getYear()%4&&((date.getYear()%100!=0)||(date.getYear()%400==0))); 
              }
              
              /**
               * 日期對象轉換為指定格式的字符串
               * @param f 日期格式,格式定義如下 yyyy-MM-dd HH:mm:ss
               * @param date Date日期對象, 如果缺省,則為當前時間
               *
               * YYYY/yyyy/YY/yy 表示年份  
               * MM/M 月份  
               * W/w 星期  
               * dd/DD/d/D 日期  
               * hh/HH/h/H 時間  
               * mm/m 分鐘  
               * ss/SS/s/S 秒  
               * @return string 指定格式的時間字符串
               
          */
              this.dateToStr = function(formatStr, date){
                  formatStr = arguments[0] || "yyyy-MM-dd HH:mm:ss";
                  date = arguments[1] || new Date();
                  var str = formatStr;   
                  var Week = ['日','一','二','三','四','五','六'];  
                  str=str.replace(/yyyy|YYYY/,date.getFullYear());   
                  str=str.replace(/yy|YY/,(date.getYear() % 100)>9?(date.getYear() % 100).toString():'0' + (date.getYear() % 100));   
                  str=str.replace(/MM/,date.getMonth()>9?(date.getMonth() + 1):'0' + (date.getMonth() + 1));   
                  str=str.replace(/M/g,date.getMonth());   
                  str=str.replace(/w|W/g,Week[date.getDay()]);   
                
                  str=str.replace(/dd|DD/,date.getDate()>9?date.getDate().toString():'0' + date.getDate());   
                  str=str.replace(/d|D/g,date.getDate());   
                
                  str=str.replace(/hh|HH/,date.getHours()>9?date.getHours().toString():'0' + date.getHours());   
                  str=str.replace(/h|H/g,date.getHours());   
                  str=str.replace(/mm/,date.getMinutes()>9?date.getMinutes().toString():'0' + date.getMinutes());   
                  str=str.replace(/m/g,date.getMinutes());   
                
                  str=str.replace(/ss|SS/,date.getSeconds()>9?date.getSeconds().toString():'0' + date.getSeconds());   
                  str=str.replace(/s|S/g,date.getSeconds());   
                
                  return str;   
              }

              
              /**
              * 日期計算  
              * @param strInterval string  可選值 y 年 m月 d日 w星期 ww周 h時 n分 s秒  
              * @param num int
              * @param date Date 日期對象
              * @return Date 返回日期對象
              
          */
              this.dateAdd = function(strInterval, num, date){
                  date =  arguments[2] || new Date();
                  switch (strInterval) { 
                      case 's' :return new Date(date.getTime() + (1000 * num));  
                      case 'n' :return new Date(date.getTime() + (60000 * num));  
                      case 'h' :return new Date(date.getTime() + (3600000 * num));  
                      case 'd' :return new Date(date.getTime() + (86400000 * num));  
                      case 'w' :return new Date(date.getTime() + ((86400000 * 7) * num));  
                      case 'm' :return new Date(date.getFullYear(), (date.getMonth()) + num, date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds());  
                      case 'y' :return new Date((date.getFullYear() + num), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds());  
                  }  
              }  
              
              /**
              * 比較日期差 dtEnd 格式為日期型或者有效日期格式字符串
              * @param strInterval string  可選值 y 年 m月 d日 w星期 ww周 h時 n分 s秒  
              * @param dtStart Date  可選值 y 年 m月 d日 w星期 ww周 h時 n分 s秒
              * @param dtEnd Date  可選值 y 年 m月 d日 w星期 ww周 h時 n分 s秒 
              
          */
              this.dateDiff = function(strInterval, dtStart, dtEnd) {   
                  switch (strInterval) {   
                      case 's' :return parseInt((dtEnd - dtStart) / 1000);  
                      case 'n' :return parseInt((dtEnd - dtStart) / 60000);  
                      case 'h' :return parseInt((dtEnd - dtStart) / 3600000);  
                      case 'd' :return parseInt((dtEnd - dtStart) / 86400000);  
                      case 'w' :return parseInt((dtEnd - dtStart) / (86400000 * 7));  
                      case 'm' :return (dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12) - (dtStart.getMonth()+1);  
                      case 'y' :return dtEnd.getFullYear() - dtStart.getFullYear();  
                  }  
              }

              /**
              * 字符串轉換為日期對象
              * @param date Date 格式為yyyy-MM-dd HH:mm:ss,必須按年月日時分秒的順序,中間分隔符不限制
              
          */
              this.strToDate = function(dateStr){
                  var data = dateStr;  
                  var reCat = /(\d{1,4})/gm;   
                  var t = data.match(reCat);
                  t[1] = t[1] - 1;
                  eval('var d = new Date('+t.join(',')+');');
                  return d;
              }

              /**
              * 把指定格式的字符串轉換為日期對象yyyy-MM-dd HH:mm:ss
              * 
              
          */
              this.strFormatToDate = function(formatStr, dateStr){
                  var year = 0;
                  var start = -1;
                  var len = dateStr.length;
                  if((start = formatStr.indexOf('yyyy')) > -1 && start < len){
                      year = dateStr.substr(start, 4);
                  }
                  var month = 0;
                  if((start = formatStr.indexOf('MM')) > -1  && start < len){
                      month = parseInt(dateStr.substr(start, 2)) - 1;
                  }
                  var day = 0;
                  if((start = formatStr.indexOf('dd')) > -1 && start < len){
                      day = parseInt(dateStr.substr(start, 2));
                  }
                  var hour = 0;
                  if( ((start = formatStr.indexOf('HH')) > -1 || (start = formatStr.indexOf('hh')) > 1) && start < len){
                      hour = parseInt(dateStr.substr(start, 2));
                  }
                  var minute = 0;
                  if((start = formatStr.indexOf('mm')) > -1  && start < len){
                      minute = dateStr.substr(start, 2);
                  }
                  var second = 0;
                  if((start = formatStr.indexOf('ss')) > -1  && start < len){
                      second = dateStr.substr(start, 2);
                  }
                  return new Date(year, month, day, hour, minute, second);
              }


              /**
              * 日期對象轉換為毫秒數
              
          */
              this.dateToLong = function(date){
                  return date.getTime();
              }

              /**
              * 毫秒轉換為日期對象
              * @param dateVal number 日期的毫秒數 
              
          */
              this.longToDate = function(dateVal){
                  return new Date(dateVal);
              }

              /**
              * 判斷字符串是否為日期格式
              * @param str string 字符串
              * @param formatStr string 日期格式, 如下 yyyy-MM-dd
              
          */
              this.isDate = function(str, formatStr){
                  if (formatStr == null){
                      formatStr = "yyyyMMdd";    
                  }
                  var yIndex = formatStr.indexOf("yyyy");     
                  if(yIndex==-1){
                      return false;
                  }
                  var year = str.substring(yIndex,yIndex+4);     
                  var mIndex = formatStr.indexOf("MM");     
                  if(mIndex==-1){
                      return false;
                  }
                  var month = str.substring(mIndex,mIndex+2);     
                  var dIndex = formatStr.indexOf("dd");     
                  if(dIndex==-1){
                      return false;
                  }
                  var day = str.substring(dIndex,dIndex+2);     
                  if(!isNumber(year)||year>"2100" || year< "1900"){
                      return false;
                  }
                  if(!isNumber(month)||month>"12" || month< "01"){
                      return false;
                  }
                  if(day>getMaxDay(year,month) || day< "01"){
                      return false;
                  }
                  return true;   
              }
              
              this.getMaxDay = function(year,month) {     
                  if(month==4||month==6||month==9||month==11)     
                      return "30";     
                  if(month==2)     
                      if(year%4==0&&year%100!=0 || year%400==0)     
                          return "29";     
                      else     
                          return "28";     
                  return "31";     
              }     
              /**
              *    變量是否為數字
              
          */
              this.isNumber = function(str)
              {
                  var regExp = /^\d+$/g;
                  return regExp.test(str);
              }
              
              /**
              * 把日期分割成數組 [年、月、日、時、分、秒]
              
          */
              this.toArray = function(myDate)  
              {   
                  myDate = arguments[0] || new Date();
                  var myArray = Array();  
                  myArray[0] = myDate.getFullYear();  
                  myArray[1] = myDate.getMonth();  
                  myArray[2] = myDate.getDate();  
                  myArray[3] = myDate.getHours();  
                  myArray[4] = myDate.getMinutes();  
                  myArray[5] = myDate.getSeconds();  
                  return myArray;  
              }  
              
              /**
              * 取得日期數據信息  
              * 參數 interval 表示數據類型  
              * y 年 M月 d日 w星期 ww周 h時 n分 s秒  
              
          */
              this.datePart = function(interval, myDate)  
              {   
                  myDate = arguments[1] || new Date();
                  var partStr='';  
                  var Week = ['日','一','二','三','四','五','六'];  
                  switch (interval)  
                  {   
                      case 'y' :partStr = myDate.getFullYear();break;  
                      case 'M' :partStr = myDate.getMonth()+1;break;  
                      case 'd' :partStr = myDate.getDate();break;  
                      case 'w' :partStr = Week[myDate.getDay()];break;  
                      case 'ww' :partStr = myDate.WeekNumOfYear();break;  
                      case 'h' :partStr = myDate.getHours();break;  
                      case 'm' :partStr = myDate.getMinutes();break;  
                      case 's' :partStr = myDate.getSeconds();break;  
                  }  
                  return partStr;  
              }  
              
              /**
              * 取得當前日期所在月的最大天數  
              
          */
              this.maxDayOfDate = function(date)  
              {   
                  date = arguments[0] || new Date();
                  date.setDate(1);
                  date.setMonth(date.getMonth() + 1);
                  var time = date.getTime() - 24 * 60 * 60 * 1000;
                  var newDate = new Date(time);
                  return newDate.getDate();
              }
              
              return this;
          }();
          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
            <html>
            <head>
              <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
              <script type="text/javascript" src="./DateUtil.js" ></script>

              <script type="text/javascript">
                  
          var date = new Date(); 
                  document.write(
          "penngo test DateUtil.js=====================" + date + "<br/>");
                  document.write(
          "date========================================" + date + "<br/>");
                  document.write(
          "isLeapYear==================================" + DateUtil.isLeapYear(date) + "<br/>");
                  document.write(
          "dateToStr===================================" + DateUtil.dateToStr('yyyy-MM-dd HH:mm:ss', date) + "<br/>");
                  document.write(
          "dateAdd('d', 2, date)=======================" + DateUtil.dateToStr('yyyy-MM-dd HH:mm:ss', DateUtil.dateAdd('d', 2, date)) + "<br/>");
              
                  
          var date2 = DateUtil.dateAdd('s', 3, date);
                  document.write(
          "dateDiff('s', date, date2)==================" + DateUtil.dateDiff('s', date, date2) + "<br/>");
                  document.write(
          "strToDate('2013-01-16 00:27:23')============" + DateUtil.strToDate('2013-01-16 00:27:23') + "<br/>");
                  document.write(
          "strFormatToDate=============================" + DateUtil.strFormatToDate('yyyy-MM-dd HH:mm:ss', '2013-01-16 00:27:23') + "<br/>");
                  document.write(
          "dateToLong==================================" + DateUtil.dateToLong(date) + "<br/>");
                  document.write(
          "longToDate==================================" + DateUtil.longToDate(DateUtil.dateToLong(date)) + "<br/>");
                  document.write(
          "isDate('2013-01-16 00:27:23', 'yyyy-MM-dd HH:mm:ss')=" + DateUtil.isDate('2013-01-16', 'yyyy-MM-dd') + "<br/>");

                  document.write(
          "datePart====================================" + DateUtil.datePart('m', date) + "<br/>");
                  document.write(
          "maxDayOfDate================================" + DateUtil.maxDayOfDate(date) + "<br/>");
              
          </script>
            </head>
            <body>
            </body>
            </html>
          ===========penngo test DateUtil.js==========
          date========================================Wed Jan 16 2013 01:14:23 GMT+0800 (中國標準時間)
          isLeapYear==================================false
          dateToStr===================================2013-01-16 01:14:23
          dateAdd('d', 2, date)=======================2013-01-18 01:14:23
          dateDiff('s', date, date2)==================3
          strToDate('2013-01-16 00:27:23')============Wed Jan 16 2013 00:27:23 GMT+0800 (中國標準時間)
          strFormatToDate=============================Wed Jan 16 2013 00:27:23 GMT+0800 (中國標準時間)
          dateToLong==================================1358270063903
          longToDate==================================Wed Jan 16 2013 01:14:23 GMT+0800 (中國標準時間)
          isDate('2013-01-16 00:27:23', 'yyyy-MM-dd HH:mm:ss')=true
          datePart====================================14
          maxDayOfDate================================31

          posted @ 2013-01-16 12:49 楊軍威 閱讀(759) | 評論 (0)編輯 收藏

          jfinal系統啟動時調用的方法和系統停止時調用的方法

          public class DemoConfig extends JFinalConfig {
          //在系統停止時調用的方法
              public void beforeJFinalStop() {
             
              };
              //在系統啟動時調用的方法
              @Override
              public void afterJFinalStart() {
                  // TODO Auto-generated method stub
                  super.afterJFinalStart();
               
              }
          }

          posted @ 2013-01-15 09:27 楊軍威 閱讀(580) | 評論 (0)編輯 收藏

          jfinal攔截器筆記5

          Interceptors是jfinal  aop的實現方式,通過實現Interceptor接口以及使用@Before可以
          精確進行配置,
          Interceptor接口僅僅定了一個方法void intercept(ActionInvocation ai);
          我們可以讓一個類實現這個接口,重寫方法,如:
          public class DemoInterceptor implements Interceptor {
          public void intercept(ActionInvocation ai) {
          System.out.println("Before action invoking");
          ai.invoke();
          System.out.println("After action invoking");
          }
          }
          就寫好了一個攔截器。
          攔截器配置有三個級別,global級,controller級,action級。global級的攔截器將對所有的
          action進行攔截,controller級攔截器將對該controller中的所以action攔截,action級攔截器
          只對該action進行攔截。
          global級攔截器在
          public void configInterceptor(Interceptors me) {
                  me.add(new DemoInterceptor());           
          }
          中配置,controller級攔截器使用@Before放在controller類定以前進行配置,action級攔截器
          使用@Before放在action定義前進行配置。具體配置如下:
          @Before(DemoInterceptor.class) // 配置一個Controller級別的攔截器
          public class HelloController extends Controller {
          @Before(AaaInterceptor.class)
          public void index() {
          renderText("配置一個action級別的攔截器");
          }
          @Before({AaaInterceptor.class, BbbInterceptor.class})
          public void test() {
          renderText("配置多個action級別的攔截器");
          }
          @ClearInterceptor
          public void login() {
          renderText("清除上一級別(Controller級)的攔截器");
          }
          @ClearInterceptor(ClearLayer.ALL)
          public void clearAllLayers() {
          renderText("清除所有級別(Global級與Controller級)的攔截器");
          }
          }

          posted @ 2013-01-10 14:05 楊軍威 閱讀(8696) | 評論 (1)編輯 收藏

          jfinal筆記4

          render系列的方法將渲染不同類型的視圖并返回給客戶端,jfinal目前支持的視圖類型有:freemarker,jsp,velocity,json,file,text,html等等,此外還可以繼承render抽象類來無限擴展視圖類型。
          使用render(String)方法來渲染視圖,是請求轉發方式渲染視圖的,
          當執行完一個action后,想重定向到另一個action時,使用redirect(getRequest().getContextPath()+"/user");
          getRequest().getContextPath()是工程的名字,
          "/user"是想訪問的控制類的映射的路由配置。
          在使用jfinal開發時,把項目部署到tomcat后,訪問會遇到404問題,解決辦法是:1.
          在jsp的每個訪問后臺方法的鏈接都加上工程的名稱,如:
          <a href="${pageContext.request.contextPath }/user"><b>user管理</b></a>
          一些靜態資源也要加上工程名稱,如css,js,等等。
          得到工程路徑的方法2:先配置
          public void configHandler(Handlers me) {
                    me.add(new ContextPathHandler("base"));//得到工程路徑
              }
          調用
          getAttr("base")
          方法就得到工程路徑了

          posted @ 2013-01-10 13:39 楊軍威 閱讀(1945) | 評論 (0)編輯 收藏

          jfinal筆記3

          在jfinal中的configInterceptor方法中加入的攔截器是全局攔截器,所以的訪問都會先經過攔截器,當只有少數類不需要經過攔截器,但是大多數類需要經過攔截器,就配置全局攔截器,在不需要經過攔截器的類中加上@ClearInterceptor (xxx.class)就可以了。
          ,當攔截器只需要在訪問具體的業務才調用時就不要在configInterceptor方法中加入此攔截器,只要在具體的業務控制類的前面加上@Before(BlogInterceptor.class)就可以了。
          當只想攔截方法時,就在方法上加上@Before()就可以了

          getPara系列方法分為兩種類型 。第一種類型為 第一個形參為String 的 getPara系列 方法 。該系列 方法 是對HttpServletRequest.getParameter(String name) 的封裝 , 這類方法都是轉調了 HttpServletRequest.getParameter(String name)。第二種類型 為第一個形 參為 int 或無形參的 getPara 系列 方法。 該系列方法 是去獲取 urlPara 中所帶的參數值。 getParaMap與 getParaNames分別對應 HttpServletRequest 的 getParameterMap與 getParameterNames 。
          記憶技巧:第一個參數為 String類型的將獲取表單或 url中問號掛參的 域值 。第 一個參數為 int或 或無參 數的  urlPara中的參數值 。
          setAttr("",value)轉調了HttpServletRequest.setAttribute("",value)方法,可以向頁面傳值

          posted @ 2013-01-09 09:24 楊軍威 閱讀(872) | 評論 (0)編輯 收藏

          jfinal筆記2

          基于JFinal 的web項目需要創建一個 繼承自 JFinalConfig類的 子類 ,該類用 于對整個  web項目進行配置 項目進行配置 。
          JFinalConfig 子類需要實現 五個抽象方法 ,如:
          public class DemoConfig extends JFinalConfig {
          public void configConstant(Constants me) {}
          public void configRoute(Routes me) {}
          public void configPlugin(Plugins me) {}
          public void configInterceptor(Interceptors me) {}
          public void configHandler(Handlers me) {}
          }

          configConstant
          此方法用來配置 JF inal 常量 值,如開發模式 devMode 的配置,默認 視 圖類型 ViewType 的配置 的配置 ,如下 代碼 配置了 JFinal 運行在開發模式下且默認視圖 類型為 JSP:
          public void configConstant(Constants me) {
          me.setDevMode(true);
          me.setViewType(ViewType.JSP);
          }


          在開發模式下 ,JFinal會對每次 請求輸出報告,如本會對每次 請求輸出報告,如本請求的 Controller、 Method 以及請求所攜帶的參數。 以及請求所攜帶的參數。JFinal 支持 JSP 、 FreeMarker、Velocity三種常 用視圖 。
          configRoute
          此方法用來配置 JF inal 訪問 路由  ,如下 代碼 配置了 將 ”/hello” 映射到 HelloController  這個控制器 , 通過以下的配置,http://localhost/hello將訪問HelloController.index()方法,而
          http://localhost/hello/other將訪問到HelloController.other()方法.
          字符串與控制類的映射是:
          public void configRoute(Routes me) {
          me.add("/hello", HelloController.class);
          }
          Routes 類主要 有如下 兩個 方法:
          public Routes add(String controllerKey, Class<? extends Controller> controllerClass, String viewPath)
          public Routes add(String controllerKey, Class<? extends Controller> controllerClass)


          第一個參數 controllerKey是指訪問某個 Controller所需要的一個字符串 ,該 字符串唯一對應個 Controller,controllerKey僅能定位到 僅能定位到 Controller。第二個參 數 controll er Class 是該 controllerKey所對應 到的 Controller。第三個參數 view Path 是指 該 Controller返回的視圖  的相對路徑。當 view Path未指定時默認值為 controllerKey。
          1.當url是http://localhost/controllerKey時,調用的是對應控制類的index()方法;
          當需要傳參數時,url這樣寫:http://localhost/controllerKey/a-b-c,參數之間用中橫線分開,
          index()方法中調用getPara(i)得到參數,i是參數對應的下標,例如a的下標是0,b的下標是1,c的下標是2.
          2.當url是http://localhost/controllerKey/method時,調用的是對應控制類的method()方法;
          3.
          JFinal 在以上路由 規則之外 還提供了 ActionKey注解, 可以打破 原有 規則, 以下是代碼示例 :
          public class HelloController extends Controller{
              @ActionKey("second")
              public void second(){
                  System.out.println("0="+getPara(0));
                  System.out.println("1="+getPara(1));
                  System.out.println("2="+getPara(2));
                  renderText("yjw");
              }
          }
          這樣url可以寫成http://localhost/second/1-2-3,不用寫控制類的映射了。
          4.
          如果以上所有路由規則都不能滿足需求,開發者還可根據要使用 Handler定制更加個性化的路由,大體思就是在Handl er 中改變第一個參數 String target的值。

          posted @ 2013-01-08 15:45 楊軍威 閱讀(3768) | 評論 (0)編輯 收藏

          jfinal筆記1

               摘要: JFinal主要特點:MVC架構,設計精巧,使用簡單 遵循COC原則,零配置,無xml ActiveRecord支持,使數據庫開發極致快速 自動加載修改后的java文件,開發過程中無需重啟web server AOP支持,攔截器配置靈活,功能強大 Plugin體系結構,擴展性強 多視圖支持,支持FreeMarker、JSP、Velocity 強大的Validator后端校驗功能 功能齊全,擁有st...  閱讀全文

          posted @ 2013-01-08 15:20 楊軍威 閱讀(3347) | 評論 (2)編輯 收藏

          在項目啟動時調用的方法配置

          <bean id="bookOutInThread" class="com.ourselec.eam.filter.BookOutInThread" init-method="runThread"/>
          先把一個類交給spring管理,在配置初始化調用的方法

          posted @ 2013-01-07 10:17 楊軍威 閱讀(219) | 評論 (0)編輯 收藏

          Form 表單域與 Java 對象屬性的自動裝配功能

               摘要: 時下很多 Web 框架 都實現了 Form 表單域與 Java 對象屬性的自動裝配功能,該功能確實非常有用,試想如果沒這功能則勢必到處沖積著 request.getParameter() 系列方法與類型轉換方法的調用。重復代碼量大,容易出錯,同時又不美觀,影響市容。   現在的問題是,這些框架通過什么方法實現自動裝配的?如果不用這些框架我們自己如何去實現呢?尤其對于那些純 JSP/Servle...  閱讀全文

          posted @ 2013-01-07 09:40 楊軍威 閱讀(4473) | 評論 (1)編輯 收藏

          jquery學習

          jQuery 是一個 JavaScript 函數庫。

           

          jQuery 庫包含以下特性:

          • HTML 元素選取 
          • HTML 元素操作 
          • CSS 操作 
          • HTML 事件函數 
          • JavaScript 特效和動畫 
          • HTML DOM 遍歷和修改 
          • AJAX 
          • Utilities

          通過 jQuery,您可以選取(查詢,query) HTML 元素,并對它們執行“操作”(actions)。

          ————————————————————
          jQuery 語法
          jQuery 語法是為 HTML 元素的選取編制,可以對元素執行某些操作。
          基礎語法是:$(selector).action()
          美元符號定義 jQuery 
          選擇符(selector)“查詢”和“查找” HTML 元素 
          jQuery action() 執行對元素的操作 
          實例
          $(this).hide() - 隱藏當前元素
          $("p").hide() - 隱藏所有段落
          $("p.test").hide() - 隱藏所有 class="test" 的段落
          $("#test").hide() - 隱藏所有 id="test" 的元素
          提示:jQuery 使用的語法是 XPath 與 CSS 選擇器語法的組合。在本教程接下來的章節,您將學習到更多有關選擇器的語法。

          選擇器允許您對元素組或單個元素進行操作。

          ————————————————————
          jQuery 選擇器
          在前面的章節中,我們展示了一些有關如何選取 HTML 元素的實例。
          關鍵點是學習 jQuery 選擇器是如何準確地選取您希望應用效果的元素。
          jQuery 元素選擇器和屬性選擇器允許您通過標簽名、屬性名或內容對 HTML 元素進行選擇。
          選擇器允許您對 HTML 元素組或單個元素進行操作。
          在 HTML DOM 術語中:
          選擇器允許您對 DOM 元素組或單個 DOM 節點進行操作。
          ————————————————————
          jQuery 元素選擇器
          jQuery 使用 CSS 選擇器來選取 HTML 元素。
          • $("p") 選取 <p> 元素。

          • $("p.intro") 選取所有 class="intro" 的 <p> 元素。

          • $("p#demo") 選取 id="demo" 的第一個 <p> 元素。
          ————————————————————
          jQuery 屬性選擇器
          jQuery 使用 XPath 表達式來選擇帶有給定屬性的元素。
          • $("[href]") 選取所有帶有 href 屬性的元素。

          • $("[href='#']") 選取所有帶有 href 值等于 "#" 的元素。

          • $("[href!='#']") 選取所有帶有 href 值不等于 "#" 的元素。

          • $("[href$='.jpg']") 選取所有 href 值以 ".jpg" 結尾的元素。
          ————————————————————
          jQuery CSS 選擇器
          jQuery CSS 選擇器可用于改變 HTML 元素的 CSS 屬性。
          更多的實例
          語法 描述 
          • $(this) 當前 HTML 元素 
          • $("p") 所有 <p> 元素 
          • $("p.intro") 所有 class="intro" 的 <p> 元素 
          • $(".intro") 所有 class="intro" 的元素 
          • $("#intro") id="intro" 的第一個元素 
          • $("ul li:first") 每個 <ul> 的第一個 <li> 元素 
          • $("[href$='.jpg']") 所有帶有以 ".jpg" 結尾的 href 屬性的屬性 
          • $("div#intro .head") id="intro" 的 <div> 元素中的所有 class="head" 的元素 

          posted @ 2013-01-06 15:57 楊軍威 閱讀(123) | 評論 (0)編輯 收藏

          僅列出標題
          共43頁: First 上一頁 33 34 35 36 37 38 39 40 41 下一頁 Last 

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 尉犁县| 沅江市| 珲春市| 舟曲县| 石阡县| 博爱县| 深水埗区| 玉溪市| 富阳市| 宜昌市| 册亨县| 博乐市| 康保县| 汾阳市| 沛县| 龙胜| 巴林左旗| 松滋市| 邹城市| 龙南县| 龙泉市| 武川县| 左贡县| 金堂县| 万载县| 定西市| 扶绥县| 滨海县| 盐源县| 洛阳市| 黄大仙区| 华容县| 通道| 五莲县| 鹿邑县| 南华县| 香港 | 涟水县| 衡山县| 台湾省| 康平县|