我遇到过一些我以前从未见过的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并只保留文本。
答案 0 :(得分:0)
如果您更改了以下内容:
if ( icon_container.find(".n-file").length ) {
到
if ( $('#yw4 .yiiPager .n-file').length > 0 ) {
无论如何,如果我们假设icon_container被正确定义,那么原作似乎是有效的。