jq获取上级、同级、下级元素
下⾯介绍JQUERY的⽗,⼦,兄弟节点查⽅法
jQuery.parent(expr) ⽗亲节点,可以传⼊expr进⾏过滤,⽐如$("span").parent()或者$("span").parent(".class")
jQuery.parents(expr),类似于jQuery.parents(expr),但是是查所有祖先元素,不限于⽗元素
jQuery.children(expr).返回所有⼦节点,这个⽅法只会返回直接的孩⼦节点,不会返回所有的⼦孙节点
jQuery对象返回,children()则只会返回节点
jQuery.prev(),返回上⼀个兄弟节点,不是所有的兄弟节点
jQuery.prevAll(),返回所有之前的兄弟节点
<(),返回下⼀个兄弟节点,不是所有的兄弟节点
jQuery.siblings(),返回兄弟妹节点,不分前后
jQuery.find(expr),跟jQuery.filter(expr)完全不⼀样。jQuery.filter()是从初始的jQuery对象集合中筛选出⼀部分,⽽jQuery.find()
的返回结果,不会有初始集合中的内容,⽐如$("p"),find("span"),是从
p元素开始,等同于$("p span")
先说⼀下JS的获取⽅法,其要⽐JQUERY的⽅法⿇烦很多,后⾯以JQUERY的⽅法作对⽐
JS的⽅法会⽐JQUERY⿇烦很多,主要则是因为FF浏览器,FF浏览器会把你的换⾏也当最DOM元素
原⽣的JS获取ID为test的元素下的⼦元素。可以⽤:
⽐如:
<div id="dom">
<div></div>
<div></div>
<div></div>
</div>
var a = ElementById("dom").getElementsByTagName_r("div"); 这样是没有问题的
此时a.length=3;
但是我们现在换⼀种⽅法获取就是我上章提到的var b = ElementByIdx_x("dom").childNodes;如果这样alert(b.length)IE浏览器上没问题还是3,但是在FF浏览器上会提⽰是4,这就是因为FF把换⾏也当做⼀个元素了。
所以我们必须处理⼀下才能⽤JS的那些属性。处理思想很简单就是遍历⼀下这些元素。把元素类型为空格⽽且是⽂本都删除。处理函数是这样的
function del_space(elem){
var elem_child = elem.childNodes;//得到参数元素的所有⼦元素
for(var i=0;i<elem_child.length;i++){ //遍历⼦元素
if(deName == "#text" && !/\S/.test(deValue)) {
}
}
}jquery字符串截取
上述函数遍历⼦元素,当元素⾥⾯有节点类型是⽂本并且该节点的节点值是空的。就把他删除。
nodeNames可以得到⼀个节点的节点类型,/\s/是⾮空字符在JS⾥的正则表达式。前⾯加!,则表⽰是空字符test() ⽅法⽤于检测⼀个字符串是否匹配某个模式.语法是: st(string)
如果字符串 string 中含有与 RegExpObject 匹配的⽂本,则返回 true,否则返回 false。
nodeValue表⽰得到这个节点⾥的值。
removeChild则是删除元素的⼦元素。
下⾯就是重点了啊!
<div id = "dom">
<div></div>
<div></div>
<div></div>
</div>
<script>
function dom(){
var a = ElementByIdx_x_x("dom");
del_space(a);调⽤清理空格的函数
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的最后⼀个⼦节点
}
</script>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。