如何获取我的代码中的所有父<li>项目</li>

时间:2013-02-10 09:52:00

标签: javascript

我有以下标记:

<ul class="MenuBarVertical" id="Ul1">
            <li id="MBVItem3732874">
                <div class="MainMenuBarBackgrounImage">
                    <a class="MenuBarItemSubmenu" href="/%D7%A7%D7%98%D7%92%D7%95%D7%A8%D7%99%D7%94%2D1.html">category 1</a></div>
                <ul>
                    <li id="SMBVItem3732879">
                        <a href="/%D7%A2%D7%9E%D7%95%D7%93%2D1%2D1.html" tabindex="-1">page 1.1</a></li>
                    <li id="SMBVItem3732880">
                        <a href="/%D7%A2%D7%9E%D7%95%D7%93%2D1%2D2.html" tabindex="-1">page 1.2</a></li>
                    <li id="SMBVItem3732881">
                        <a href="/%D7%A2%D7%9E%D7%95%D7%93%2D1%2D3.html" tabindex="-1">page 1.3</a></li>
                    <li id="SMBVItem3732882">
                        <a href="/%D7%A2%D7%9E%D7%95%D7%93%2D1%2D4.html" tabindex="-1">page 1.4</a></li>
                    <li id="SMBVItem3732883">
                        <a href="/1%2D5.html" tabindex="-1">1.5</a></li>
                </ul>
            </li>
            <li id="MBVItem3732875">
                <div class="MainMenuBarBackgrounImage">
                    <a class="MenuBarItemSubmenu" href="/%D7%A7%D7%98%D7%92%D7%95%D7%A8%D7%99%D7%94%2D2.html" tabindex="-1">category 2</a></div>
                <ul>
                    <li id="SMBVItem3732884">
                        <a href="/%D7%A2%D7%9E%D7%95%D7%93%2D2%2D1.html" tabindex="-1">page 2.1</a></li>
                    <li id="SMBVItem3732885">
                        <a href="/%D7%A2%D7%9E%D7%95%D7%93%2D2%2D2.html" tabindex="-1">page 2.2</a></li>
                    <li id="SMBVItem3732886">
                        <a href="/%D7%A2%D7%9E%D7%95%D7%93%2D2%2D3.html" tabindex="-1">page 2.3</a></li>
                    <li id="SMBVItem3732887">
                        <a href="/%D7%A2%D7%9E%D7%95%D7%93%2D2%2D4.html" tabindex="-1">page 2.4</a></li>
                </ul>
            </li>

        </ul>

我希望使用java脚本显示父UL的所有<li>个ID(但目前它显示<li>中的所有<ul>)。

我的代码是:

window.onload = function () {
    var list = document.getElementById("Ul1");
    var items = list.getElementsByTagName("li");
    for (var i = 0, size = items.length; i < size; i++) {

        alert(items[i].parnetnode.id);

    }
}

有人可以帮助我,如果有办法可以告诉我。

2 个答案:

答案 0 :(得分:0)

将您的拼写parnetnode更改为parentNode并为父级“ul”提供ID

alert(items[i].parentNode.id);

答案 1 :(得分:0)

您的代码在<li> 中获得所有#Ul1个代码。当您迭代并致电items[i].parentNode.id时,有些会为您提供正确的ID,但有些会为您提供#Ul1

相反,尝试只获取第二级<ul>,然后访问父节点的ID:

window.onload = function () {
    var list = document.getElementById("Ul1");
    var items = list.getElementsByTagName("ul"); // <-- i.e. select #Ul1 ul
    for (var i = 0, size = items.length; i < size; i++) {
        alert(items[i].parentNode.id);
    }
}

注意:此解决方案取决于您描述的HTML结构,并且只要没有第三级(或更深级)级<ul>标记就可以使用。

工作示例:http://jsfiddle.net/U5pNS/