2014-07-17 50 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