使用JQuery获取节点与其子节点的方法

对于页面中的html片段:

<div id="dem"><span>单号:</span>RC-12345854635</div>

 使用jQuery获取div的文本节点:

var str = $("#dem").text();

得到的内容--> str = 单号:RC-12345854635,即取得了div节点的全部文本内容。

要想获得div主节点的文本,而不去子节点(span)的文本,可使用如下方法:

var text = $("#dem").contents().filter(function() {
  return this.nodeType === 3;
}).text();

其中,方法contents()的作用是查找匹配元素内部所有的子节点(包括文本节点);在这里就是取得id为dem的div下所有子节点。

而filter()的作用是过滤结果集,目的只有一个,使被过滤的结果集中,满足参数条件的节点保留下来,这里传入的参数为函数;反之不满足的节点全部移除。

nodeType 属性返回以数字值返回指定节点的节点类型。

如果节点是元素节点,则 nodeType 属性将返回 1。

如果节点是属性节点,则 nodeType 属性将返回 2。

如果节点是文本节点,则 nodeType 属性将返回 3。

 同样的,也可以获取div下span子节点的文本信息,方法如下:

var text = $("#dem > span").first().contents().filter(function() {
    return this.nodeType === 3;
}).text();

 

posted @ 2015-05-05 16:53  hccwu  阅读(4503)  评论(0编辑  收藏  举报