Jquery wrapInner无法在页面上工作

时间:2015-07-13 21:30:58

标签: javascript jquery

我遇到过一些我以前从未见过的wrapInner问题。该页面是一个动态生成的页面,这是预期的,我试图将一个div的所有元素包装在一个表的网格中。

以下是HTML代码的示例:

<div class="n-files-all" id="yw4">
    <div class="yiiPager">
        <div class="n-file">content</div>
        <div class="n-file">content</div>
        <div class="n-file">content</div>
    </div>
</div>

这里是javascript:

var checkExist = setInterval(function() {
    if ( icon_container.find(".n-file").length ) {
        // if there are children, do this
        console.log("There are n-files!");
        $(".n-files-all .yiiPager").wrapInner("<table id='myGrid' class='tablesorter'></table>");
        clearInterval(checkExist);
    }
}, 100);

它进入了if块,因为我可以将发送日志放入控制台,我可以在那里看到它。

我试图结束这个应该非常简单(我最终将内部元素包装在tr和td中):

<div class="n-files-all" id="yw4">
    <div class="yiiPager">
        <table id="myGrid" class="tablesorter">
            <div class="n-file">content</div>
            <div class="n-file">content</div>
            <div class="n-file">content</div>
        </table>
    </div>
</div>

这里是踢球者,如果我将代码复制并粘贴到控制台中,它可以正常工作并完成我想要的操作。会发生什么事? setInterval应该通过等待内容来工作,但我也尝试了$(document).ready()来等待整个文档的加载。

提前致谢!

更多信息:

所以如果我将纯文本附加或添加到div中它可以正常工作。但是,如果我尝试使用html预先添加或附加任何内容,它就不会,它会删除HTML并只保留文本。

1 个答案:

答案 0 :(得分:0)

如果您更改了以下内容:

if ( icon_container.find(".n-file").length ) {

if ( $('#yw4 .yiiPager .n-file').length > 0 ) {

无论如何,如果我们假设icon_container被正确定义,那么原作似乎是有效的。