jstree:jquery.find仅适用于第一级节点

时间:2015-02-17 10:01:54

标签: jquery jstree

为什么这段代码不起作用?

http://jsfiddle.net/3q9Ma/28/

<div id="jstree">
    <ul>
        <li id="x1">AAA004
            <ul>
                <li id="x2">AAA005</li>
                <li>AAA006
                    <ul>
                        <li id="x3">AAA007
                            <ul>
                                <li>AAA008</li>
                                <li>AAA009</li>
                            </ul>
                        </li>
                        <li>AAA010</li>
                    </ul>
                </li>
            </ul>
        </li>
        <li>AAA011</li>
        <li>AAA012</li>
    </ul>
</div>

和javascript:

$(function () {
    $('#jstree').on('ready.jstree', function (e, data) {
          x = $('#jstree').find("li[id='x3']");
          alert(x[0].id);
    }).jstree();
});

试图找到第一级节点的作品!!!但与其他人不一样。将找到id =“x1”的节点,但id =“x2”或id =“x3”的节点不会。

1 个答案:

答案 0 :(得分:1)

加载页面时 - DOM中没有li#x3个节点。查看jstree的{​​{3}}。您的代码会在加载页面后立即运行。

但是如果你打开列表 - 是的,li#x3将出现,并且这将在你的代码运行后发生。