js日常小笔记

一、getElementsByClassName
h5中新增的方法,但是只有较新的浏览器才支持它,现在使用DOM方法来实现,能适用于新老浏览器

function getElementsByClassName(node,classname)  
{  
   if(node.getElementsByClassName)  
   {   //使用现有方法  
       return node.getElementsByClassName(classname);  
   }else{  

       var results=new Array();  
       var elems=node.getElementsByTagName("*");  
       for(var i=0;iif(elems[i].className.indexOf(classname)!=-1)  
          {   results[results.length]=elems[i];  }  
       }  

       return results;  
   }  

}  

二、给链接a添加点击事件
在onclick事件处理函数中返回false,可以防止用户被带到目标链接窗口

<a href="http://www.baidu.com"   onclick="showPic(this);return false;">Click mea>
<a href="javascript:showPic(this);return false;">Click mea>  

三、childNodes属性
childNodes属性可以用来获取任何一个元素的所有的子元素,包含所有类型的节点,而不仅仅是元素节点,甚至连空格和换行符都会被解释为节点,最常见的的有元素节点(nodeType为1),属性节点(nodeType为2),文本节点(nodeType为3)

四、nodeValue属性的应用

"p1">this is text

//获取p元素的文本内容 var pid=document.getElementById("p1"); alert(pid.childNodes[0].nodeValue); alert(pid.firstChild.nodeValue);) //设置p元素的文本内容 pid.firstChild.nodeValue=text;

五、给多选框添加全选和取消全选
//网上查阅资料知:jQuery1.9.1针对checkbox的调整方法,用prop代替attr。在jquery 1.8.x中的版本,对于checkbox的选中与不选中操作如下:
1.判断是否选中:$('#checkbox').prop('checked')
2.设置选中与不选中状态:$('#checkbox').attr('checked',true)$('#checkbox').attr('checked',false)
但此方法在jquery1.9.1中,有些处理不一样,同事执行正常的使用的正好是1.8版本,本人使用的是1.11版本。

<script src="js/jquery-1.11.1.min.js" type="text/javascript">script>   
<script type="text/javascript">   
$(function() {  
           $("#checkAll").click(function() {  
                $('input[name="subBox"]').prop("checked",this.checked);   
            });  
            var $subBox = $("input[name='subBox']");  
            $subBox.click(function(){  
                $("#checkAll").prop("checked",$subBox.length == $("input[name='subBox']:checked").length ? true : false);  
            });  
        });  
script>   
head>   
<body>   
 <div>  
        <input id="checkAll" type="checkbox" />全选  
        <input name="subBox" type="checkbox" />项1  
        <input name="subBox" type="checkbox" />项2  
        <input name="subBox" type="checkbox" />项3  
        <input name="subBox" type="checkbox" />项4  
    div>  

六、当前日期与无效日期对比

<script>
  $(document).ready(function() {
      var d = new Date;
        var yy=d.getFullYear()
        if(yy<1900) yy = yy+1900;
        var MM=d.getMonth()+1;
        if(MM<10) MM = '0' + MM;
        var dd =d.getDate();
        if(dd<10) dd = '0' + dd;
        var hh =d.getHours();
        if(hh<10) hh = '0' + hh;
        var mm =d.getMinutes();
        if(mm<10) mm = '0' + mm;
        var ss = d.getSeconds();
        if(ss<10) ss = '0' + ss;
        var ww = d.getDay();
        var Otoday =yy+"-"+MM+"-"+dd+" "+hh+":"+mm+":"+ss;

    $(".tabggl tr").each(function(){
        var content=$(this).find(".pdate").html();
        if(content == null || content.length == 0)
        {$(this).css("display","none");}
        else{
        var today =Otoday.replace(/-/g,"/"); 
        var temp=$(this).find(".pdate").text().replace(/-/g,"/"); 
             if (temp>today)
            {
                $(this).css("display","block");
            }
        }

    })
}); 
script>
<table width="100%" border="0" cellspacing="0" cellpadding="0"  class="tabggl">

          
          <tbody>
            <CMSPRO_DOCUMENTS DOCUMENTTYPE="0|1|2|3" NUM="15" STARTPOS="0" PAGESIZE="0" CHANNELCODE="tgl">
            <tr style="display:none;">
              <td class="row-py-02-titlelist-02">
              <span><CMSPRO_DOCUMENT FIELD="title" AUTOLINK="true" LINKALT="true" LINKALTTEXT=" " NUM="15">信息标题CMSPRO_DOCUMENT>span> 
              <span class="pdate" style="display:none"><CMSPRO_DOCUMENT FIELD="sxtime" DOMAINMETADATANAME="失效日期" DATEFORMAT="yyyy-MM-dd HH:mm:ss">失效日期
CMSPRO_DOCUMENT>span>
              td>
            tr>
            CMSPRO_DOCUMENTS>
             

             

            
          tbody>
        table>

七、动态创建标记
1、document.write()
2、innerHTML属性
3、DOM方法–createElement()、appendChild()、createTextNode()、insertBefore(newElement,targetElement)、
4、DOM方法中没有提供insertAfter函数,insertAfter自定义的insertAfter函数如下:

function insertAfter(newElement,targetElement){
    var parent=targetElement.parentNode;
    if(parent.lastChild==targetElement){
       parent.appendChild(newElement);
    }
    else{
    parent.insertBefore(newElement,targetElement.nextSibling);
    }
}

八、Ajax

var request;
if(window.XMLHttpRequest){
   request=new XMLHttpRequest();  //IE7+、Firefox、Chrome、Opera、Safari....
}

else{
   request=new ActiveXObject("Microsoft.XMLHTTP");//IE6、IE5
}


request.open("GET","get.php",true);

request.send();

request.onreadystatechange=function(){

  if(request.readyState==4&&request.status==200){

   //做一些事情  request.responseText

  }

}

发送请求方法:

open(method,url,async)

send(string)

例子:

request.open(“GET”,”get.php”,true);

request.send();

request.open(“POST”,”create.php”,true);

request.setRequestHeader(“Conetent-type”,”application/x-www-form-urlencoded”);

request.send(“name=王二狗&sex=男”);//当使用post方法时要带参数

取得相应的方法:

responseText:获得字符串形式的相应数据

responseXML:获得XML形式的相应数据

status和statusText:以数字和文本形式返回HTTP状态码

getAllResponseHeader():获取所有的相应报头

getResponseHeader():查询相应中的某个字段的值

重要属性:

readyState属性

0:请求未初始化,open还没有调用

1:服务器连接已建立,open已经调用了

2:请求已接收,也就是接收到头信息了

3:请求处理中

4:请求已完成

例子: Ajax应用实例——登录

九、style属性
(1)style属性只能返回行内样式,这是style属性获取样式很大的局限性,注意:用DOM设置样式,就可以用DOM再把它检索出来(在外部样式表里声明的样式不会进入style对象,在文档的部分里声明的样式也是如此,style对象只包含在HTML代码里用style属性声明的样式)

element.style.color;
element.style.fontFamily;
element.style.marginTopWidth;//对应margin-top-width

(2)设置样式

element.style.property=value;

你可能感兴趣的:(Web前端,javascript,jQuery,javascript)