2014-07-17 19 views
1

我想创建一个jQuery循环是:jQuery的循环来创建的div和追加内容,他们

  1. 搜索通过WordPress的职位有问题的任何图片或iFrame
  2. 每个创建一个新的div并将图像或iframe插入到div中
  3. 以可视方式对事物进行重新排序,以便这些新创建和新填充的div显示在我想要的位置(在本例中位于帖子和帖子标题之上)。

我一直在尝试一个多星期来完成这项工作,并且已经接近完成,但总是有些事情是错误的。

jQuery("document").ready (function(){ 
    jQuery(".para img, iframe").each(function(){ 
     jQuery(this).prependTo(jQuery(this).parents(".wrapper940")); 

     var ndiv = jQuery("<div></div>"); 
     jQuery(ndiv).append(this); 
    }) 
}); 

所以在上面的代码中,我搜索.para类中的任何图片或iFrame,然后运行上他们,每个“功能将其预先准备到后期的父(.wrapper940),然后一旦他们在那里我试图为每个图像/ iframe创建一个新的div。

有了这个特定版本的代码,它根本不显示图像或iframes,所以我假设我需要'打印'ndiv元素?让我的图像和iframe消失在变量中,不再显示?

对不起,可能过于具体的帖子;我不知道我在处理什么,以便能够提出更尖锐的问题。

+0

我不知道是什么你的HTML结构是,但是一旦你创建了新的元素,你必须将它们附加到现有的DOM元素。 – pmandell

+0

您需要将您的选择器从“.para img,iframe”更改为“.para img,.para iframe”。 –

+0

josmh - 谢谢,但这并没有解决主要问题 – user2654408

回答

1

您首先将img或iframe预先添加到“.wrapper940”中,但是会立即将您的img/iframe附加到未创建任何连接的新创建的div。你的第一个操作完全被第二个操作取消(通过将它附加到div上,你可以自动从包装中删除它)。我假设你真的想所有的图像和框架必须首先附加到一个新的div项,然后该专区产品实际上被装进包装的一个...

jQuery("document").ready (function(){ 
    jQuery(".para img, iframe").each(function(){ 
     // First I create the div element. 
     var ndiv = jQuery("<div></div>"); 

     // Now I put the div element into the wrapper, instead of the 'this' 
     ndiv.prependTo(jQuery(this).parents(".wrapper940")); 

     // Last I put 'this' into the div. 
     ndiv.append(this); 
    }) 
}); 
+0

好是工作的主!因此结束了一周疯狂的挫折。很快。谢谢!! – user2654408

+0

呃男人,我做了很多次相同的事情。有时很难看到。 – Lochemage

+0

感谢您的解释 - 现在我清楚地看到它。 – user2654408