Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery循环以创建div并向其追加内容_Jquery_Wordpress_Loops_Each_Prepend - Fatal编程技术网

jQuery循环以创建div并向其追加内容

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循环:

  • 在有问题的WordPress帖子中搜索任何图像或iFrame
  • 为其中每一个创建一个新的div,并将图像或iframe插入div中
  • 以视觉方式重新排序,使这些新创建和新填充的div显示在我想要的位置(在本例中,位于post和post标题上方)
  • 我已经尝试了一个多星期来完成这项工作,并且已经接近完成,但总有一些事情不对劲

    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()函数来影响找到的第一个项。