var
smalls
=
documentgetElementById('small')getElementsByTagName('li');
这样可以获取所有id="small"下的
li
。
Jquery的遍历,其实就当前位置的元素相对于其他元素的位置的关系进行查找或选取HTML元素。以某项选择开始,并沿着这条线进行移动,或向上(父级)、或向下(子级)、或水平(同级),直到找到目标元素为止,这种移动也被成为对DOM进行遍历。
其实对于DOM来说,这个不陌生,Jquery的遍历也就是在DOM树上上蹿下跳,当然这种上蹿下跳不是没有规则的,胡乱的找是让人鄙视的。通俗的说,在一颗树上(你也在树上,已经爬上去了,哈哈),以你所在的位置为起点,以树上有个桃子为目的地,你的这个起点也就是当前 this ,去移动去摘桃子的过程就是Jquery遍历,所以相对应的Jquery所衍生出的遍历方法可以分为三大类,即Jquery遍历之父级(祖先)、同级(同胞)和子级(后代)三种。
两种方式:
第一种纯js,使用递归:
<script>
/
第一个参数为页面元素对象或者数组
第二个参数为回调函数回调函数默认传递一个函数,即当前对象
/
function Each(obj,fun){
if('function'!==typeof(fun) || !obj){
return false;
}
if('undefined'!==typeof(objlength)){
for(var i=0;i<objlength;i++){
var o=obj[i];var r=fun(o)||true;
if(r===true){
r=Each(ochildren,fun);
if(!r) return false;
}
}
}else{
var r=fun(obj)||true;
if(r===true){
r=Each(objchildren,fun);
if(!r) return false;
}
}
}
</script>
用法:
//
Each(documentgetElementsByTagName("body"),function(obj){
if(objnodeName==="UL")//obj为当前遍历到的对象
return false;//如果返回false就会停止遍历
alert(objnodeName);
});
第二种方法,使用jquery:
$("body ")each(function(i, obj){
alert( "Item #" + i + ": " + obj );
});
1、新建一个html文件,命名为testhtml,用于讲解Jquery如何获得div下的元素。
2、在testhtml文件内,使用div标签创建一个模块,在div内,使用p标签,span标签创建测试的内容。
3、在testhtml文件内,设置div的id属性为divcon,主要用于下面通过该id获得div对象。
4、在testhtml文件内,使用button标签创建一个按钮,按钮名称为“获得div下的元素”。
5、在testhtml文件中,给button按钮绑定onclick点击事件,当按钮被点击时,执行divfun()函数。
6、在js标签中,创建divfun()函数,在函数内,通过id(divcon)获得div对象,使用html()方法便可以获得div对象下面的元素了。最后,使用alert()方法输出元素。
7、在浏览器打开testhtml文件,点击按钮,查看结果。
总结
1、创建一个testhtml文件。
2、在文件内,在div标签内,使用p标签创建一行文字,同时创建一个button按钮,用于触发执行js函数。
3、在js标签内,创建函数,在函数内,使用getElementById()方法通过id(mydiv)获是div对象,再使用getElementsByTagName()方法获得div下面的p元素对象,最后,使用alert()方法输出p元素的内容。
在获取子元素之前js肯定不知道总共有多少个子元素,所以子元素都是以元素集合的形式出现的(即使子元素只有一个甚至没有),然后再从中枚举出每个子元素,比如:
elemchildNodes[0]
//这是第一个子元素
elemchildNodes[1]
//这是第二个子元素,依此类推
此外,还可以使用children,它也是个集合,用法一样:
elemchildren[0]
//这是第一个子元素
elemchildren[1]
//这是第二个子元素,依此类推
childNodes和children的区别在于,前者会把文本元素(含回车、空格等)也作为子元素,后这则只把标签元素作为子元素
此外,如果知道子元素的ID、Name、Class或者标签名,也可以直接获取子元素,比如:
elemgetElementById("abc")
//获取id为abc的子元素(ID具有唯一性,所以它可以直接获取)
elemgetElementsByName("xxx")[0]
//获取name属性为xxx的第一个子元素(name属性允许重名,所以它是个集合)
elemgetElementsByClassName("hehe")[0]
//获取class为hehe的第一个子元素(class属性也是可以重名的)
elemgetElementsByTagName("a")[0]
//获取第一个a标签子元素
以上就是关于js怎么获取div下子元素的子元素全部的内容,包括:js怎么获取div下子元素的子元素、js中如何获取div下的二级子元素、js 怎么获取body中的所有元素 不只是body的子元素,还有子元素的子元素等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)