先按照你的这个方法获取。然后可以通过判断li的parentNode是不是外层的ul来筛选li
或者可以这么写
var ul = documentgetElementById('outer');var n = ulfirstChildnodeType == 1ulfirstChild:ulfirstChildnextSibling;
var r = [];
for(;n;n = nnextSibling){
if(nnodeType == 1){
consolelog(ninnerHTML);
rpush(n);
}
};
<div>
11
<ul>
<li>1</li>
<ul onmouseout="aa(this)"> <li>33</li></ul>
<li>2</li>
</ul>
</div>
<SCRIPT type=text/javascript>
function aa(obj)
{
alert(objparentNodeparentNodepreviousSiblingdata);//第一个11
alert(objpreviousSiblingdata);//第二个1
alert(objchildNodes[0]innerText);//第三个33
alert(objparentNodenextSiblinginnerText);//第四个2
}
</SCRIPT>
想了半天js没想到什么好用的办法,jQuery倒是可以实现,但是js我倒是想到了一个比较笨的方法
先获得aul下所有的li的长度,然后获得bul下的li的长度,相减得到aul的子li的长度,就是你想要的那些li的长度,然后通过documentgetElementById("id")childNodes[n]这个函数,n应该是0-最终你想要的li的长度-1,这样子吧
<script type="text/javascript">
function pro(){
//得到li的数组
var lis = documentgetElementById("ul的ID")getElementsByTagName("li");
for(var i=0;i<9;i++){
var li = lis[i];
//你要的9个li
}
}
</script>
使用jquery的选择器获取ul里的所有li元素,然后用jquery提供的css(name, value)方法修改所有li的css属性,即background-color
如果ul的id的变量名为ulid
$("li","#" + ulid)css("background-color","#ccc");这个用到了jquery的选择器规则$(selector1, content)
selector1是一个选择器。content可以是一个选择器、一个jquery dom对象或者原生dom对象,上面的代码中conten是一个选择器
这个写法的意思是选择content中所有符合selector1的元素,在上面的代码里面就表示“选择id为ulid变量值的ul中所有的li元素”
css(name, value)方法是改变名称为name的css属性为value,有数值单位的可以省去单位,如padding 30px的值可以直接写css("padding", 30)
css(name)是获取名称为name值的css属性值,如css("padding")返回padding的值,不带单位,如css("padding")返回30
---- alert(documentgetElementById("list")getElementsByTagName("li")length); ---- 步骤: 1、给UL一个ID值 2、使用documentgetElementById获取到这个ID值对应的UL对象 3、再使用getElementsByTagName
以上就是关于用js只获取第一层ul中的第一层的所有li,不影响第二层中的li全部的内容,包括:用js只获取第一层ul中的第一层的所有li,不影响第二层中的li、js 如何获取 UL外面的LI的内容、javascript 获得ul下的li子元素等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)