Js与css零碎笔记1

js学习参考博客:http://www.cnblogs.com/wzmaodong

 

el表达式

<c:if test="${NonEasouDown_flag ne null }">

        <div style="background:#D2ECED;font-size:16;width:60%;">非宜搜歌曲</div>

        <div>

        <p>

            <table>

            <c:if test="${nonEasouEntity ne null}">

                <tr><td>歌曲名:</td><td><b>${nonEasouEntity.song}</b></td></tr>

                 <tr><td>歌手名:</td><td><b>${nonEasouEntity.songer}</b></td></tr>

                <tr><td colspan="2">下载链接:</td></tr>

                 

                <c:forEach var="items" items="${itemsList}" varStatus="vs">

                    <tr><td colspan="2"><a href="${items.downurl}">${items.filetype}</a></td></tr>

                </c:forEach>

            </c:if>

            <c:if test="${nonEasouEntity eq null}"><tr><td colspan="2">暂无资源</td></tr></c:if>

            </table>

        </p>

        </div>

</c:if>

 

jQuery.combobox, 给文本框添加下拉选项的轻量级插件

Description

jQuery.combobox is a lightweight jQuery plugin which transforms a textbox into a combobox, so users can enter text or select from supplied options.

It could be called more than once on the same textbox.

It would work with jQuery.bgiframe plugin to fix the IE select/zIndex bug if you include it in the same page.

Tested in IE 7, Firefox 3.

Updates

2009-3-18

Suggestion matching is now case-insensitive

The second time setting up combobox on the same textbox is working now

Fixed the IE relative z-index bug by avoiding relative positioning

Demostartion

 Combobox 1

 Combobox 2

     This is a select box to see if there is a problem in IE.

 

Usage

Html

<input class="combo" />

Script

<link href="jquery.combobox.css" rel="stylesheet" />

<script type="text/javascript" src="jquery.js"></script>

<script type="text/javascript" src="jquery.combobox.min.js"></script>

 

jQuery('.combo').combobox(['option1', 'option2', 'option3', ...], {imageUrl : '/images/dropdown.gif'});

   

Copyright

It's released under the MIT licence, so use it however you want.

By deerchao@gmail.com on 2009-3-16

Download

https://files.cnblogs.com/deerchao/jquery.combobox.zip

 

正则表达示学习:http://deerchao.net/tutorials/regex/regex.htm

 

display:inline-block

将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内,允许空格。

 

<audio> 标签属性:

src:音乐的URL

preload:预加载

autoplay:自动播放

loop:循环播放

controls:浏览器自带的控制条

1

<audio id="media" src="http://www.abc.com/test.mp3" controls></audio>

<video> 标签属性:

src:视频的URL

poster:视频封面,没有播放时显示的图片

preload:预加载

autoplay:自动播放

loop:循环播放

controls:浏览器自带的控制条

width:视频宽度

height:视频高度

1

<video id="media" src="http://www.abc.com/test.mp4" controls width="400px"heigt="400px"></video>

获取HTMLVideoElementHTMLAudioElement对象

1

//audio可以直接通过new创建对象

2

Media = new Audio("http://www.abc.com/test.mp3");

 

3

//audiovideo都可以通过标签获取对象

4

Media = document.getElementById("media");

Media方法和属性:

HTMLVideoElement HTMLAudioElement 均继承自 HTMLMediaElement

01

//错误状态

02

Media.error; //null:正常

 

03

Media.error.code; //1.用户终止 2.网络错误 3.解码错误 4.URL无效

04

  

 

05

//网络状态

06

Media.currentSrc; //返回当前资源的URL

 

07

Media.src = value; //返回或设置当前资源的URL

08

Media.canPlayType(type); //是否能播放某种格式的资源

 

09

Media.networkState; //0.此元素未初始化  1.正常但没有使用网络  2.正在下载数据  3.没有找到资源

10

Media.load(); //重新加载src指定的资源

 

11

Media.buffered; //返回已缓冲区域,TimeRanges

12

Media.preload; //none:不预载 metadata:预载资源信息 auto:

 

13

  

14

//准备状态

 

15

Media.readyState;   //1:HAVE_NOTHING 2:HAVE_METADATA 3.HAVE_CURRENT_DATA 4.HAVE_FUTURE_DATA 5.HAVE_ENOUGH_DATA

16

Media.seeking; //是否正在seeking

 

17

  

18

//回放状态

 

19

Media.currentTime = value; //当前播放的位置,赋值可改变位置

20

Media.startTime; //一般为0,如果为流媒体或者不从0开始的资源,则不为0

 

21

Media.duration; //当前资源长度 流返回无限

22

Media.paused; //是否暂停

 

23

Media.defaultPlaybackRate = value;//默认的回放速度,可以设置

24

Media.playbackRate = value;//当前播放速度,设置后马上改变

 

25

Media.played; //返回已经播放的区域,TimeRanges,关于此对象见下文

26

Media.seekable; //返回可以seek的区域 TimeRanges

 

27

Media.ended;    //是否结束

28

Media.autoPlay; //是否自动播放

 

29

Media.loop; //是否循环播放

30

Media.play();   //播放

 

31

Media.pause();  //暂停

32

  

 

33

//控制

34

Media.controls;//是否有默认控制条

 

35

Media.volume = value; //音量

36

Media.muted = value; //静音

 

37

  

38

//TimeRanges(区域)对象

 

39

TimeRanges.length; //区域段数

40

TimeRanges.start(index) //index段区域的开始位置

 

41

TimeRanges.end(index) //index段区域的结束位置

事件:

01

eventTester = function(e){

02

        Media.addEventListener(e,function(){

 

03

            console.log((new Date()).getTime(),e);

04

        });

 

05

    }

06

  

 

07

    eventTester("loadstart");   //客户端开始请求数据

08

    eventTester("progress");    //客户端正在请求数据

 

09

    eventTester("suspend");     //延迟下载

10

    eventTester("abort");       //客户端主动终止下载(不是因为错误引起),

 

11

    eventTester("error");       //请求数据时遇到错误

12

    eventTester("stalled");     //网速失速

 

13

    eventTester("play");        //play()autoplay开始播放时触发

14

    eventTester("pause");       //pause()触发

 

15

    eventTester("loadedmetadata");  //成功获取资源长度

16

    eventTester("loadeddata");  //

 

17

    eventTester("waiting");     //等待数据,并非错误

18

    eventTester("playing");     //开始回放

 

19

    eventTester("canplay");     //可以播放,但中途可能因为加载而暂停

20

    eventTester("canplaythrough"); //可以播放,歌曲全部加载完毕

 

21

    eventTester("seeking");     //寻找中

22

    eventTester("seeked");      //寻找完毕

 

23

    eventTester("timeupdate");  //播放时间改变

24

    eventTester("ended");       //播放结束

 

25

    eventTester("ratechange");  //播放速率改变

26

    eventTester("durationchange");  //资源长度改变

 

27

    eventTester("volumechange");    //音量改变

 

Html5演示地址:http://directguo.com/code/html5teach/media.html

 

ELJSTL核心标签库http://wenku.baidu.com/view/0ede03e29b89680203d82549.html

 

html5学习博客

 

js画圆:http://www.cnblogs.com/iamzhanglei/archive/2011/08/16/2140113.html

 

 

javascriptnodeValuevalue的区别?

<body>

<input type=button value=寻找 onclick="alert(document.body.childNodes[4].value)">

<br><br>

<input type=button id="kk" value="hao" onclick="alert(document.getElementById('kk').value)">

</body>

alert(document.body.childNodes[4].value)这句是说第5个节点的值是hao

为什么改成alert(document.body.childNodes[4].nodeValue)就不行,意思都一样的,为什么不行,

childNodes[4].nodeValue是第5个节点的nodeValue节点值,为什么就不行啊,弹出null,怎么回事?

 

答:document.body.childNodes[]指的是<body>这个标签的子节点

而你这个文档中,<body>的子节点有4个,<input><br><br><input>

document.body.childNodes[4].value指的是第四个节点<input>中的value属性值

如果你把这个语句换成document.body.childNodes[4].id,相信返回的就是kk~~~

nodeValue指的是节点的值...

value指的是元素节点中的value属性...

 

nodeValue以及其与value的区别以及JS nodeNamenodeValuenodeType返回类型

nodeNamenodeValue 以及 nodeType 包含有关于节点的信息。

 

nodeName 属性含有某个节点的名称。

元素节点的 nodeName 是标签名称
属性节点的 nodeName 是属性名称
文本节点的 nodeName 永远是 #text
文档节点的 nodeName 永远是 #document
注释:nodeName 所包含的 XML 元素的标签名称永远是大写的

 

nodeValue
对于文本节点,nodeValue 属性包含文本。

对于属性节点,nodeValue 属性包含属性值。

nodeValue 属性对于文档节点和元素节点是不可用的。

 

nodeType
nodeType
属性可返回节点的类型。

最重要的节点类型是:

元素类型 --> 节点类型
元素element --> 1
属性attr --> 2
文本text -->  3
注释comments --> 8
文档document --> 9

   

nodeValue就是用来得到"文本元素的值"的,即只适用于"文本节点"

例子:

<html>

<head>
<script type="text/javascript">
function getNodeValue()
{
var nv=document.getElementById("td1").firstChild.nodeValue;
var nn=document.getElementById("tr1").firstChild.nodeName;
var nv1=document.getElementById("tr1").firstChild.nodeValue;
alert("nv="+nv);
alert("nn="+nn);
alert("nv1="+nv1);
}
</script>

</head>

<body>
<table>
  <tr id="tr1">
    <td id="td1" >John</td>
    <td>Doe</td>
    <td>Alaska</td>
  </tr>
</table>
<input type="button" value="button1"  onclick="getNodeValue()"/>
</body>

</html>

   

以上得到的结果:

nv=John;

nn=td;

nv1=null;

要分清元素的value属性和nodeValue 不一样,nodeValue适用于"文本节点""属性节点";对应"文档节点""标签节点"不起作用

   

   

接口

nodeType常量

nodeType

备注

Element

Node.ELEMENT_NODE

1

元素节点

Text

Node.TEXT_NODE

3

文本节点

Document

Node.DOCUMENT_NODE

9

document

Comment

Node.COMMENT_NODE

8

注释的文本

DocumentFragment

Node.DOCUMENT_FRAGMENT_NODE

11

document片断

Attr

Node.ATTRIBUTE_NODE

2

节点属性

   

   

/*
       
定义和用法
          childNodes 属性可返回指定节点的子节点的节点列表,也就是包含在容易内的所有控件与文本属性字段,如果希望得到这些中的某些,必须通过
          类别属性进行筛选。
          childNodes常用属性:
          nodeValuenodeValue适用于"文本节点(<td>中的文本内容)""属性节点";对应"文档节点""标签节点(li"不起作用
          nodeName:元素节点的 nodeName 是标签名称
           
属性节点的 nodeName 是属性名称
           
文本节点的 nodeName 永远是 #text
           
文档节点的 nodeName 永远是 #document
            nodeType:
返回的数值 1:元素节点、2:属性节点、3:文本节点
            firstChild
:返回容器内的第一个控件对象,可以利用这个返回对象去获取该控件的属性信息
            parentNode
:返回子节点对象外层的父对象,可以利用这个返回父对象去获取该控件的属性信息
            previousSibling:
获取同级节点上级节点对象,可以利用这个返回对象去获取该节点的属性信息
            nextSibling
:获取同级节点下级节点对象,可以利用这个返回对象去获取该节点的属性信息
            
       
语法:
          nodeObject.childNodes
       
提示和注释
          提示:请使用 length 属性来计算一个节点列表中节点的数目。当你已获悉节点列表的长度后,您就可以轻松地循环遍历此列表,并提取您所需要的值!
       
实例
          在所有的例子中,我们将使用 XML 文件 books.xml,以及 JavaScript 函数 loadXMLDoc()   
          下面的代码片段显示了此XML文档的子节点:   
          xmlDoc=loadXMLDoc("books.xml");   
          var x=xmlDoc.childNodes;   
          for (i=0;i<x.length;i++) { document.write("Nodename: " + x[i].nodeName) document.write(" (nodetype: " + x[i].nodeType + ")<br />") }
        */

 

 

javaScript分割字符串

 

var srcType=$('music'+i).getAttribute("value");

var arr=srcType.split("-");    //arr[0]:src ;arr[1]:type

使用 JavaScript 控制 Audio 对象

 

<noscript>标记

<noscript>

<iframe src="*.htm">

</iframe>

</noscript>

 

noscript 元素用来定义在脚本未被执行时的替代内容(文本)。

此标签可被用于可识别 <script> 标签但无法支持其中的脚本的浏览器。

此段代码意思为如果浏览器不支持script的代码,则会显示嵌入的那个页面的内容。

<pre>的好处:此标签用于显示源代码

 

 

环形进度条学习地址:http://jplayer.org/ 
两大CSS显示属性display block和inline区别
深入理解Javascript闭包(closure)
关于Javascript的内存泄漏问题的整理稿 : http://www.blogjava.net/tim-wu/archive/2006/05/29/48729.html
全面理解javascript的caller,callee,call,apply概念(修改版)
牛人的javaScript深入专业学习博客 :  http://www.blogjava.net/zkjbeyond/category/10156.html

 

JS修改标签的class属性

由于class属于JavaScript保留值,因此当我们要操作元素的class属性值时,

直接使用obj.getAttribute('class')obj.setAttribute('class', 'value')可能会遭遇浏览器兼容性问题。

W3C DOM标准为每个节点提供了一个可读写的className属性,作为节点class属性的映射,

标准浏览器的都提供了这一属性的支持,因此,可以使用e.className访问元素的class属性值,也可对该属性进行重新斌值。

IEOpera中也可使用e.getAttribute('className')e.setAttribute('className', 'value')访问及修改class属性值。

相比之下,e.classNameW3C DOM标准,仍然是兼容性最强的解决办法。</P>

以下列表说明了上文提及的三种做法的浏览器兼容性测试:

e.className 能在IEMozilla(Firefox)OperaSafari正确运行 
e.getAttribute('class')
e.setAttribute('class', 'value') 能在Mozilla(Firefox)Opera中正确运行,在IESafari中则不能使用。 
e.getAttribute('className')
IEOpera中正确运行,在Mozilla(Firefox)Safari中则不能使用。

 

pan内容修改

问:假设有以下span代码 <span   pTitle= "title "> title </span> 应该如何通过javaScript改变这个title成good呢?答:<span   pTitle= "title "   id=span1> title </span> <script> span1.innerHTML= "good "; </script>

document.all是什么意思?

document.all是页面内所有元素的一个集合。如:   document.all(0)表示页面内第一个元素document.all可以判断浏览器是否是IE     if(document.all){     alert("IE!");     }-------------------------------------------------LZ的程序要么是判断是否是IE(不过一般不这样判)要么就是要看文档是否为空。比如一个典型的html文档为<html><head><title></title></head><body></body></html>,如果连这些都没有,整个文档就是空的,如果有那些,那么document.all[0]=html节点,document.all[1]=head节点以此类推。

解决方案一:var a = document.createElement("a"); 
a.href="javascript:void(0);"; 
a.onclick=function(){delEditInput(this);delEditSelect(this,select); 
}; 
解决方案二:
node.childNodes[0].onclick   =   new   Function("showHide( '6 ')");
解决方案三:
node.childNodes[0].onclick     =   function   () 

.... 


function   node.childNodes[0].onclick() 

.... 


node.childNodes[0].onclick   =   cc   ; 
function   cc() 

.... 


node.childNodes[0].onclick   =   the   ; 
var   the   =   function   () 

... 
}
JS修改标签的 style 属性值: 

style 属性也是在标签上引用样式表的方法之一,它的值是一个CSS样式表。DOM 对象也有 style 属性, 不过这个属性本身也是一个对象,Style 对象的属性和 CSS 属性是一一对应的,当改变了 Style 对象的属性时,对应标签的CSS 属性值也 就改变了,所以这属于第二种修改方法。

更改一个标签的 CSS 属性的代码是:

document.getElementById( id ).style.属性名 = ;

document.getElementById( id ) 用于获取标签对应的 DOM 对象,你也可以用其它方法获取。style  DOM 对象的一个属性,它本身也是一个对象。属性名  Style 对象的属性名,它和某个CSS属性是相对应的。

说明:这种方法修改的单一的一个CSS属性,它不影响标签上其它CSS属性值。

注意:多数 Style 对象的属性名和 CSS 属性名是不同名的,且 Style 对象的属性名要区分大小写。

比如:CSS font-size 属性对应于 Style 对象的 fontSize 属性,CSSmargin-top 属性对应于 Style 对象的 marginTop 属性。


js中设置href属性

document.getElementById("aId").href="new.html"

 

s读取cookie,js添加cookie,js删除cookie

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>

<head>

<title>www.111cn.cn js cookie</title>

<meta name="Generator" content="EditPlus">

<meta name="Author" content="">

<meta name="Keywords" content="">

<meta name="Description" content="中国web第一站">

</head>

   

<body>

<script language="JavaScript" type="text/javascript">

<!--

varCookie=newObject();

 Cookie.setCookie=function(name,value,option){

 //用于存储赋值document.cookiecookie格式字符串

 varstr=name+"="+escape(value); 

 if(option){

 //如果设置了过期时

 if(option.expireDays){

  vardate=newDate();

  varms=option.expireDays*24*3600*1000;

   date.setTime(date.getTime()+ms);

   str+="; expires="+date.toGMTString();

  }

 if(option.path)str+="; path="+path;  //设置访问路

 if(option.domain)str+="; domain"+domain;//设置访问主

 if(option.secure)str+="; true";   //设置安全

 }

 document.cookie=str;

}

 Cookie.getCookie=function(name){

 varcookieArray=document.cookie.split("; ");//得到分割cookie名值对

 varcookie=newObject();

 for(vari=0;i<cookieArray.length;i++){

 vararr=cookieArray[i].split("=");   //将名和值分

 if(arr[0]==name)returnunescape(arr[1]);//如果是指定cookie,则返回它的值

 }

 return"";

}

 Cookie.deleteCookie=function(name){

 this.setCookie(name,"",{expireDays:-1});//将过期时间设置为过去来删除一cookie

}

 Cookie.setCookie("user","jack");

alert(Cookie.getCookie("user"));

Cookie.deleteCookie("user");

alert(Cookie.getCookie("user"));

//-->

</script>

</body>

</html>

 

css旋转动画

.playload{background:url("../head/img/bg_down.png") no-repeat -98px -128px;

background-size:400px;

-webkit-animation-name:rot;

-webkit-animation-duration:1s;

-webkit-animation-timing-function:linear;

-webkit-animation-iteration-count:infinite;}

 

js问题

1. 

vararr=['one','two','three'];

arr返回Object类型,所以输出值时,要注意用toString()方法。

2.

for(varainarr){

    alert("a:"a);   //a输出的key值,012

    alert("arr[a]:"+arr[a]);    //arr[a] 输出的是:one  two  three

}

 

jsQueryString实现

方式一

function QueryString(id)

{

var svalue = location.search.match(new RegExp("[\?\&]" + qs + "=([^\&]*)(\&?)", "i"));

return svalue ? svalue[1] : "";

}

 

方式二

function  QueryString(name){     

    var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");    

    var r = window.location.search.substr(1).match(reg);     

    if(r!=null){

        return unescape(r[2]);

    }

    return "undefined";     

}

 

 

js控制音乐播放

    function hiddenObj(obj){obj.style.display="none";}

    function showObj(obj){obj.style.display="";}

    var audio=$('mplayer');

    var temp=0,audioSrcFlag=0;

    var clientWidth=document.body.clientWidth;

    

    var first01 = $("firstOl"); 

    var i=1;

    audio.src=$('music1').getAttribute("value");

    //在线歌曲播放

    //author:kevin

    var musicBox={//歌曲播放

        pause:function(){

         if(!audio.paused||!audio.ended){

            audio.pause();

            //将暂停按钮切换成播放按钮                

               $("audioPause").id="audioPlay";

               $("audioPlay").ontouchstart=function(){musicBox.play();};

               $("audioPlay").href="javascript:;"

               $("pause").id="play"

               $("play").className="play";

               $("listenpause").id="listenplay"

               $("listenplay").innerHTML="试听";

         }

     },

     play:function(){

        var inlineR=$('inline');

        if (audio.paused || audio.ended) {

            if(audioSrcFlag==0){    //判断audio.src是否设置过值

                    //检查是否有netTypewifi的标签

                    var netType=first01.attributes["nettype"].value;    //直接从第二个a标签取netType属性

                    if(netType=='wifi'){

                        var music3=$('music3');

                        if(music3!=null){        //判断music3是否存在

                            audio.src=music3.getAttribute("value");

                            i=3;

                        }

                        inlineR=$('inline');

                    }

                audioSrcFlag=1;

            }

            

            if(temp!=1){

                //统计开始//

                 var theText=$('type'+i).innerHTML;

                 var typeNum=0;

                 if(theText.indexOf('普通')!=-1 || theText.indexOf('标准')){typeNum=1};

                 if(theText.indexOf('压缩')!=-1){typeNum=2};

                 if(theText.indexOf('清晰')!=-1){typeNum=3};

                 if(theText.indexOf('保真')!=-1){typeNum=4};

                 if(theText.indexOf('高潮')!=-1){typeNum=5};

                 $('countImg').src="http://collect.log.ttpod.com/ayyc/downmusic?musicName="+music.musicName+"&singerName="+music.singerName+"&type="+typeNum;

             }

                temp=1;

               //统计结束

               //var playControl=$("playControl");

               //var listenWord=$("listenWord");

            if(audio.preload!='metadata'){

                audio.preload='metadata';    

                $("play").id="playload";

                $("playload").className="playload";

                $("listenplay").id="listenload";

                $("listenload").innerHTML="缓冲中";

                

                audio.addEventListener('loadedmetadata',function(){    

                    $("audioPlay").id="audioPause";

                    $("audioPause").ontouchstart=function(){musicBox.pause();};

                    $("audioPause").href="javascript:;"

                    $("playload").id="pause";

                    $("pause").className="pause";

 

                    $("listenload").id="listenpause";

                    $("listenpause").innerHTML="试听中";

                    inlineR.style.display="block";

                    audio.play();

                },false);

            }else{

                //var playControl=$("playControl");

                   //var listenWord=$("listenWord");

                     

                   $("audioPlay").id="audioPause";

                $("audioPause").ontouchstart=function(){musicBox.pause();};

                $("audioPause").href="javascript:;"

                $("play").id="pause";

                   $("pause").className="pause";

                $("listenplay").id="listenpause";

                $("listenpause").innerHTML="试听中";

                audio.play();

            }

        }

            

            audio.addEventListener('timeupdate',updateProgress,false);

            function updateProgress() {

               var value = 0;

               if (audio.currentTime) {

                  value = Math.floor((100 / audio.duration) * audio.currentTime);

               }

               inlineR.style.width = value/100.0*clientWidth+"px";

               inlineR.style.height="2px";

             }

        }

    };

 

获得当前应用的路径

System.out.println("request.getContextPath():"+request.getContextPath());

System.out.println("request.getSession().getServletContext().getContextPath():"+request.getSession().getServletContext().getContextPath());

 

posted @ 2012-02-27 21:26  维唯为为  阅读(623)  评论(0编辑  收藏  举报