jQuery循环以创建div并向其追加内容
我正在尝试创建一个jQuery循环:jQuery循环以创建div并向其追加内容,jquery,wordpress,loops,each,prepend,Jquery,Wordpress,Loops,Each,Prepend,我正在尝试创建一个jQuery循环: 在有问题的WordPress帖子中搜索任何图像或iFrame 为其中每一个创建一个新的div,并将图像或iframe插入div中 以视觉方式重新排序,使这些新创建和新填充的div显示在我想要的位置(在本例中,位于post和post标题上方) 我已经尝试了一个多星期来完成这项工作,并且已经接近完成,但总有一些事情不对劲 jQuery("document").ready (function(){ jQuery(".para img, iframe").ea
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);
})
});
jQuery(“文档”).ready(函数(){
jQuery(“.para img,iframe”)。每个(函数(){
jQuery(this.prependTo)(jQuery(this.parents)(.wrapper940));
var ndiv=jQuery(“”);
jQuery(ndiv).append(this);
})
});
因此,在上面的代码中,我搜索.para类中的任何图像或iframe,然后对它们运行“each”函数,将它们预先发送到post的父级(.wrapper940),然后在它们出现后,我尝试为每个图像/iframe创建一个新的div
对于这个特定版本的代码,它根本不显示图像或iFrame,所以我假设我需要以某种方式“打印”ndiv元素?我的图像和iFrame是否消失在一个变量中而不再显示
对不起,这是一个迂回的地方,可能是过于具体的帖子;我对我正在处理的问题了解不够,无法提出更为尖锐的问题。您首先将img或iframe预先添加到“.wrapper940”中,然后立即将img/iframe添加到新创建的未连接到任何内容的div中。您的第一个操作在第二个操作中完全被撤消(通过将其附加到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);
})
});
jQuery(“文档”).ready(函数(){
jQuery(“.para img,iframe”)。每个(函数(){
//首先,我创建div元素。
var ndiv=jQuery(“”);
//现在我将div元素放入包装器中,而不是“this”
ndiv.prependTo(jQuery(this.parents)(.wrapper940));
//上一次我把“这个”放在div里。
追加(本);
})
});
我不知道你的HTML结构是什么,但一旦你创建了新元素,你就必须将它们附加到现有的DOM元素中。你需要将选择器从'更改为'。para img,iframe'
。para img,.para iframe'
。josmh-谢谢,但这并不能解决主要问题,这就是我为什么要发表评论的原因;)我正在努力回答这个问题。@pmandell-你能更具体一点吗?我以前有过这样一个(它也不起作用):jQuery(.paraimg,iframe”).each(function(){var ndiv=jQuery(“”);jQuery(ndiv).append(this);jQuery(ndiv).prependTo(jQuery(this).parents(.wrapper940”);}
天哪,真管用!这样结束了一周疯狂的沮丧。太快了。谢谢你!!老兄,我做过很多次同样的事情。有时很难看到。谢谢你的解释——现在我看清楚了。快速跟进问题:如果我现在想针对这些新创建的div并向其中添加一个类:首先,我该怎么做?我可以在.each内完成,还是需要在循环外完成?我是否需要jQuery(“ndiv,或者this,或者我添加到新div中的类”)??非常感谢您的帮助。您可能希望在循环之外执行此操作,但您需要以某种方式选择您的div。一旦这样做,就可以使用JQuery的first()函数来影响找到的第一个项。