JQuery没有正确附加

时间:2016-06-18 19:33:21

标签: javascript jquery html xml

我正在尝试使用JQuery.load函数加载一些XML,并且该位正常。我正在加载XML并将其放入DOM中,这就是我想要的。但是,我需要遍历顶级子元素并将某些节点附加到不同的Container。当您看到以下代码时,一切都会变得清晰:

这是我的JS和存储元素:

<div id="ProjectLoad" style="display:none"></div>

        <script type="text/javascript">
            $('#ProjectLoad').load('projects.xml');


            $('project').each(function(){
                debugger;
                var name = $(this).children('name').first().text();
                var desc = $(this).children('desc').first().text();
                var created = $(this).children('created').first().text();
                var uri = $(this).children('url').first().created();

                $('#trapezoidContainer').append('<div id="' + name + '" class="trapezoid-container"></div>');

                $('#' + name).append('<div id="sub-' + name + '" class="trapezoid"></div>');

                $('#sub-' + name).append('<a href="' + uri + '">' + name + '</a>');

                $(this).hover(function(){
                    $('#title').text(name);
                    $('#description').text(desc);
                })

            })
        </script>

这是我的projects.xml:

<projects>
    <project>
        <name>Test</name>
        <desc>Simple test project</desc>
        <created>17/11/1998</created>
        <url>http;//www.gitlab.com/roconnor/test</url>
    </project>
</projects>

我在.each()中有一个调试器语句,但它没有被命中,这使我.load()正在执行之后 {{1}由于延迟......

1 个答案:

答案 0 :(得分:0)

您必须在加载中使用完整选项 -

$('#ProjectLoad').load('projects.xml', function() {
 //just after the end of loading
$('project').each(function(){
                debugger;
//and so on
});

source