JS,JQuery杂谈

JS返回页面

 JS返回前一个页面,经常看到有人用window.history.go(-1)这种方法  这种放的确可以返回,也仅仅只是返回,返回的页面信息却没有刷新。也有人用windows.history.back(),但是经常返回的时候会丢失页面,最近写一个返回上上个页面但是信息会改变的按钮,于是想到了结合window.history.go(-1)实现,用window.location.href=window.history.go(-2).toString()

 

JQuery 模糊匹配:

[属性名称] 匹配包含给定属性的元素
[att=value] 匹配包含给定属性的元素 (大小写区分)
[att*=value] 模糊匹配
[att!=value] 不能是这个值
[att$=value] 结尾是这个值
[att^=value] 开头是这个值
[att1][att2][att3]... 匹配多个属性条件中的一个

示例:

HTML代码:
<div id="father1" class="father" onclick="toggle('child1','father1')">
<div class="fathers">家人</div>
</div>
<div id="child1" class="child">
<ul><li>家人</li></ul>
</div>
JQUERY代码(修改div的id中以'child'开头的层的display属性为none):
   $().ready(function () {
      $("div[id^=child]").css("display", "none");
  })
JS关于日期比较和获取:

var myDate = new Date(Date.parse("1991,11,11"));//将字符串转换成日期函数
var year=new Date().getFullYear();//获取当前时间的年份
var month=new Date().getMonth() + 1;//获取当前时间的月份,注意+1,getmonth月份计算是以0开始的,所以在获取时需要+1
var day=new Date().getDate();//获取当前时间的日期
var datenow = new Date(Date.parse( new Date().getFullYear()+ "," + (new Date().getMonth() + 1) + "," + new Date().getDate()));//转换日期格式
在用JS进行日期比较的时候可以直接date()>new Date(Date.parse("1991,11,11"))或者以date()>myDate 这种形式进行比较
如果当前时间相对于比较的时间晚 则在比较的时候是当前时间要小于进行比较的时间
parseInt(Math.abs(EndTime- StrTime)  /  1000  /  60  /  60  /24);//计算两个日期直接相差的天数。 
parseInt(Math.ceil(Math.abs(endDate - strDate) / 1000 / 60 / 60 / 24))/7;//使用进一除法计算周
var getmon = (endDate.getFullYear() - strDate.getFullYear()) * 12 + endDate.getMonth() - strDate.getMonth();
if (endDate.getDate() >= strDate.getDate()) {
   alert(getmon + 1);
}
else {
     alert(getmon);
}///计算开始时间与结束时间相差多少个月

JS在table标签的指定位置插入一行数据
  function InsertProduct() {
                            var tb = document.getElementById("productTable"); //获取表格标签
                            var refRow = tb.rows.length - 1; //table中现有的行数减一
                            var newRefRow = tb.insertRow(refRow);
                            newRefRow.insertCell(0).innerHTML = "<input type=\"checkbox\"  />";
                            newRefRow.insertCell(1).innerHTML = document.getElementById("t_name").value;
                            newRefRow.insertCell(2).innerHTML = document.getElementById("t_dw").value;
                            newRefRow.insertCell(3).innerHTML = document.getElementById("t_gkj").value;
                            newRefRow.insertCell(4).innerHTML = document.getElementById("t_sl").value;
                            newRefRow.insertCell(5).innerHTML = document.getElementById("t_zk").value;
                            newRefRow.insertCell(6).innerHTML = document.getElementById("t_zhj").value;
                            newRefRow.insertCell(7).innerHTML = document.getElementById("t_xj").value;
                        }
js在table中添加合并单元格
          var cell = document.createElement("TD");  //声明一个td
             cell.setAttribute('colSpan', 2);  //单元格数量
               cell.setAttribute('id', "ccoll");  //合并后的单元格id
                cell.innerHTML = "合并的单元格";    //单元格里面的内容
                newRefRow.appendChild(cell);    //将单元格加入到表格行的结尾处
  
JS计算日期
//日期减去天数后得到新的日期
  function cc(dd, dadd) {
                var a = new Date(dd)
                a = a.valueOf()
                a = a - dadd * 24 * 60 * 60 * 1000
                a = new Date(a)
                alert(a.getFullYear() + "年" + (a.getMonth() + 1) + "月" + a.getDate() + "日")
            }
cc("2/28/2002",1);

 var a = document.getElementByIdx_x_x("dom");
      var b = a.childNodes;获取a的全部子节点;
      var c = a.parentNode;获取a的父节点;
      var d = a.nextSbiling;获取a的下一个兄弟节点
      var e = a.previousSbiling;获取a的上一个兄弟节点
      var f = a.firstChild;获取a的第一个子节点
      var g = a.lastChild;获取a的最后一个子节点

 

jQuery.parent(expr) 找父亲节点,可以传入expr进行过滤,比如$("span").parent()或者$("span").parent(".class")

jQuery.parents(expr),类似于jQuery.parents(expr),但是是查找所有祖先元素,不限于父元素

jQuery.children(expr).返回所有子节点,这个方法只会返回直接的孩子节点,不会返回所有的子孙节点

jQuery.contents(),返回下面的所有内容,包括节点和文本。这个方法和children()的区别就在于,包括空白文本,也会被作为一个

jQuery对象返回,children()则只会返回节点

jQuery.prev(),返回上一个兄弟节点,不是所有的兄弟节点

jQuery.prevAll(),返回所有之前的兄弟节点

jQuery.next(),返回下一个兄弟节点,不是所有的兄弟节点

jQuery.nextAll(),返回所有之后的兄弟节点

jQuery.siblings(),返回兄弟姐妹节点,不分前后

jQuery.find(expr),跟jQuery.filter(expr)完全不一样。jQuery.filter()是从初始的jQuery对象集合中筛选出一部分,而jQuery.find()

的返回结果,不会有初始集合中的内容,比如$("p"),find("span"),是从

p元素开始找,等同于$("p span")

 

js获取节点操作

接口

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

节点属性

方法

描述

createAttribute()

用指定的名字创建新的Attr节点。

createComment()

用指定的字符串创建新的Comment节点。

createElement()

用指定的标记名创建新的Element节点。

createTextNode()

用指定的文本创建新的TextNode节点。

getElementById()

返回文档中具有指定id属性的Element节点。

getElementsByTagName()

返回文档中具有指定标记名的所有Element节点。

属性

描述

attributes

如果该节点是一个Element,则以NamedNodeMap形式返回该元素的属性。

childNodes

以Node[]的形式存放当前节点的子节点。如果没有子节点,则返回空数组。

firstChild

以Node的形式返回当前节点的第一个子节点。如果没有子节点,则为null。

lastChild

以Node的形式返回当前节点的最后一个子节点。如果没有子节点,则为null。

nextSibling

以Node的形式返回当前节点的兄弟下一个节点。如果没有这样的节点,则返回null。下一个兄弟节点

nodeName

节点的名字,Element节点则代表Element的标记名称。

nodeType

代表节点的类型。

parentNode

以Node的形式返回当前节点的父节点。如果没有父节点,则为null。

previousSibling

以Node的形式返回紧挨当前节点、位于它之前的兄弟节点。如果没有这样的节点,则返回null。上一个兄弟节点

方法

描述

appendChild()

通过把一个节点增加到当前节点的childNodes[]组,给文档树增加节点。

cloneNode()

复制当前节点,或者复制当前节点以及它的所有子孙节点。

hasChildNodes()

如果当前节点拥有子节点,则将返回true。

insertBefore()

给文档树插入一个节点,位置在当前节点的指定子节点之前。如果该节点已经存在,则删除之再插入到它的位置。

removeChild()

从文档树中删除并返回指定的子节点。

replaceChild()

从文档树中删除并返回指定的子节点,用另一个节点替换它。

 
posted @ 2013-11-10 10:43  .Justme  阅读(332)  评论(0编辑  收藏  举报