2013-03-11 17 views
1

我有一個問題,wordpress在不應該的地方給出了單獨的p標籤,將圖像從段落中拋出,並且不會讓它浮動到應該放置的位置。jq查找圖像並刪除下一個標籤

所以我得到

<p> <img /> </p> <p> TEXT </p> 

,而不是

<p> <img /> TEXT </p>. 

這個工作在1個主題應該如何,而不是在移動的主題,我不知道問題出在哪裏,我認爲讓jq腳本找到它應該的圖像會更容易(取決於src),然後刪除下一個</p><p>

+0

jQuery通過操作DOM而不是HTML來工作 - 所以它不可能僅刪除結束標記。 您的問題可以用CSS解決,但很難說沒有看到更多的代碼,最好的方法應該是什麼。 – Blazemonger 2013-03-11 20:20:22

+0

這些元素(或祖先)是否有任何類可以讓我們限制我們的選擇器?您可能不希望這發生在您的文檔中的所有圖像。 – 2013-03-11 20:24:45

回答

0

根據您的標記,你的確可以實現與jQuery你的目標。正如我在你的問題下評論的那樣,你可能想要以某種方式限制下面代碼中使用的p > img選擇器,除非你希望文檔中的所有圖像都能觸發DOM更新。

這就是說,它是一個包含一個圖像的一個後匹配next()<p>元件的contents(),然後reparenting它下的第一個,然後除去第二個的一個簡單的事情。

然而,由於移除元素不會破壞其子樹,我們實際上可以remove()重排根目錄的內容之前,第二<p>元素,這使我們能夠鏈上的整個操作分爲:

$(document).ready(function() { 
    $("p > img").each(function() { 
     var $p = $(this).parent(); 
     $p.next("p").remove().contents().appendTo($p); 
    }); 
}); 

你可以測試上面的代碼在this fiddle

+0

非常感謝!這在我的例子中有效 - 但是,我對jq很陌生,所以我不確定如何根據源查找確切的圖像。此外,圖像中的空白p標籤保留在html中,我得到一些額外的空間 - 我能夠刪除它們嗎?最後,p> img意味着像p標籤內的每個圖像,對嗎?我猜我會需要像.src(圖像源在這裏)而不是.each()然後?無論如何,非常感謝! – 2013-03-13 14:38:02

+0

對不起 - 有一些額外的空p標籤,所以我認爲它來自圖像,jq實際上刪除那些我想要刪除的標籤。 – 2013-03-13 14:42:18

0

@lbazemonger表示,需要更多的代碼來研究。

請記住,在wordpress中使用the_content()時,整個輸出總是被包含在

之中。

如果我沒有弄錯,那麼您在wordpress中寫入的html也會事先被轉義,所以您最終不會得到重複的

我會假設移動版本可能有一些像這樣的事情:

<p> 
    <?php the_content();?> 
</p> 
+0

移動版本週圍沒有p標籤,只是一個div 我沒有足夠的代碼,問題是有很多函數被調用,其中很多函數我從哪裏都不知道,如果我知道哪裏解析完成我可以做些事情,但因爲這是我的第一個WP項目,我不知道發生了什麼 我會發布wp/php,但是在很多地方有太多它,不知道從哪裏開始 – 2013-03-12 01:23:47

0

如果將wordpress的輸出卸載到div中,然後使用JQ操作html代碼,該怎麼辦?