怎么获取每个ul最外围的ul啊.不获取里面的ul
有时候做多级菜单的时候,第一级用dl,dt,dd,第二级用ul,li,第三级用div,p
用document.getElementById("wrap").getElementsByTagName("ul")老是把全部获取到了
例如:
<div id="wrap">
<ul>
<li>
<a href=""></a>
<ul>
<li><a href=""></a></li>
<li><a href=""></a></li>
</ul>
</li>
</ul>
<ul>
<li>
<a href=""></a>
<ul>
<li><a href=""></a></li>
<li><a href=""></a></li>
</ul>
</li>
</ul>
<ul>
<li>
<a href=""></a>
<ul>
<li><a href=""></a></li>
<li><a href=""></a></li>
</ul>
</li>
</ul>
</div>
有时候做多级菜单的时候,第一级用dl,dt,dd,第二级用ul,li,第三级用div,p
用document.getElementById("wrap").getElementsByTagName("ul")老是把全部获取到了
例如:
<div id="wrap">
<ul>
<li>
<a href=""></a>
<ul>
<li><a href=""></a></li>
<li><a href=""></a></li>
</ul>
</li>
</ul>
<ul>
<li>
<a href=""></a>
<ul>
<li><a href=""></a></li>
<li><a href=""></a></li>
</ul>
</li>
</ul>
<ul>
<li>
<a href=""></a>
<ul>
<li><a href=""></a></li>
<li><a href=""></a></li>
</ul>
</li>
</ul>
</div>
遍历选择就好
"怎么获取每个ul最外围的ul啊.不获取里面的ul"----不知道又没理解错你的意思,这几天刚好在学DOM.
为了更好理解取到是那个UL,我为UL都加了Lang属性,如代码:
<div id="wrap">
<ul lang="1_ul_01">
<li>
<a href="">li0</a>
<ul lang="2_ul_01">
<li><a href="">li1</a></li>
<li><a href="">li2</a></li>
</ul>
</li>
</ul>
<ul lang="1_ul_02">
<li>
<a href="">li4</a>
<ul lang="2_ul_02">
<li><a href="">li5</a></li>
<li><a href="">li6</a></li>
</ul>
</li>
</ul>
<ul lang="1_ul_03">
<li>
<a href="">li7</a>
<ul lang="2_ul_03">
<li><a href=""></a>li8</li>
<li><a href=""></a>li9</li>
</ul>
</li>
</ul>
</div>
<input type="submit" name="Submit" value="URL" onclick="getUl()"/>
配套的JS为:
function getUl(){
var getId=document.getElementById('wrap');
var i='';
var get_1st_UlList='';
var getUl=getId.childNodes;
if(getId.hasChildNodes()){
for(i=0;i<getUl.length;i++){
get_1st_UlList=get_1st_UlList+getUl[i].getAttribute('lang')+"\n";
}
alert(get_1st_UlList.toLowerCase());
}
}
如果还有取里面的UL,我就要再研究一下哈~
用JS肯定是能实现,但肯定需要进行遍历,难道头部加个Jquery会很影响页面加载速度?像这个需求document.getElementById("wrap").getElementsByTagName("ul")//老是把全部获取到了
Jquery:$("#wrap > ul") 这样只会取到div底下的ul,不会取到ul里面ul
要取全部的就是Jquery:$("#wrap ul") or $("#wrap").find("ul")Jquery的选择器是仿XPATH设计的 只要给一个起点,绝对能找到你想找的。
JQuery的选择符已为你考虑周全了,很方便
然后在getElementsByTagName("ul")呗
document.getElementById("wrap").childNodes.getElementsByTagName("ul");
var ul = document.getElementById("wrap").childNodes
var len = ul.length;
for(var i = 0; i < len; i++) {
if(ul[i].tagName.toLowerCase() == "ul") {
var ulchildren = ul[i].document.getElementsByTagName("ul");
}
}
封装一个选择子元素
选择后代元素的方法
它有一个很强大的查找函数,而且很方便调用
如:<p>Hello</p><div><span>Hello Again</span></div><p>And Again</p>
$("div").children()则得到的是<span>Hello Again</span>
同样还有其他的方法如。parent ,find ,next,prev等。