1

我有一个 Activity xml 文件,当单击子显示的活动时,我尝试从活动中获取。它看起来像所有点击的结束。

  <ul id="firstLevelChild">
<ul id="ul">
    <li id="4">Activities
        <ul class="ul">
            <li id="10066">Physical1
                <ul class="ul">
                    <li id="10067">Cricket
                        <ul class="ul">
                            <li id="10068">One Day</li>
                        </ul>
                    </li>
                </ul>
            </li>
        </ul>
    </li>
</ul>
</ul>

现在我希望如果 li 没有叶节点,那么它会显示在另一个 div 中。就像是:

点击Acitivities那里有子节点Physical1,还有孩子Cricket,现在有一天,当点击我的显示One Day时没有孩子one day<div id="result"></div>

4

3 回答 3

1

我会将其添加为评论,但我没有足够的代表。ChildNodes()不是一个函数——因为看起来你正在使用 jQuery,所以试试吧children()

于 2013-04-24T08:27:05.043 回答
0

我认为 javascript 可以帮助你。您首先正确构建 DOM 的事实的一部分;)

如果当前元素节点有子节点,hasChildNodes() 方法返回 TRUE,否则返回 FALSE。

http://www.w3schools.com/dom/met_element_haschildnodes.asp

于 2013-04-24T07:56:16.977 回答
0

假设您提供的标记将始终是 ie ulas child for all li。您只需检查ul当前li. 见小提琴

HTML

<div id="content">
    <ul id="firstLevelChild">
       <li>
        <ul id="ul">
            <li id="4">Activities
                <ul class="ul">
                    <li id="10066">Physical1
                        <ul class="ul">
                            <li id="10067">Cricket
                                <ul class="ul">
                                    <li id="10068">One Day</li>
                                </ul>
                            </li>
                        </ul>
                    </li>
                </ul>
            </li>
           </ul>
        </li>
    </ul>
</div>

<h2>Result</h2>

<ul id="result"></ul>

JS

$('#content li').each(function (i) {

    //for display purpose only
    $('#content').append('<span class="list">li(' + i + '):' + $('ul', $(this)).length + '</span>');

    //the code you needed
    if ($('ul', $(this)).length < 1) {
        $(this).on('click', function () {
          $('#result').append($(this).parent().html());
        });
    }
});
于 2013-04-24T09:30:46.190 回答