PHPを使用すると、blockquote要素の子である段落のみをどのように置き換えることができますか?私はこれらの段落要素を一時的に変換する必要があります。他の関数を実行してから、それらの関数が実行終了すると、 "p" "/ p"要素に戻します。 (。。すなわち、 "P" PTEMP " "/ PTEMP" またはそのような何か "を""/Pを変更)blockquote要素の子である段落だけを置き換えるにはどうすればよいですか?
ここに私のコードのサンプルです:
<blockquote>
<div>
<p class="replace-this-element">Some Text</p>
</div>
</blockquote>
<p class="do-not-replace-this-element">Some Text</p>
<p class="do-not-replace-this-element">Some Text</p>
<blockquote>
<div>
<p class="replace-this-element">Some Text</p>
</div>
</blockquote>
<p class="do-not-replace-this-element">Some Text</p>
<p class="do-not-replace-this-element">Some Text</p>
<blockquote>
<div>
<p class="replace-this-element">Some Text</p>
</div>
</blockquote>
編集:ご質問をお寄せいただきありがとうございます、ここにいくつかの情報があります。 。 。 PHPを使用してDrupalノードのコンテンツフィールドのレンダリングされたマークアップを変更していますので、サーバーサイドで発生しています。私は、DOMがクライアントのブラウザに組み込まれる前に挿入する必要がある4番目の段落の後にコードを挿入しているので、jsまたはjQueryを使用することはできません。ブロッククォートにネストされた段落を無視して、コードがブロッククォート内に埋め込まれないようにする必要があります。
第4段落の後に新しいコードを挿入するときに無視されるように、ブロック引用内のp要素を変更することを考えました。コードを挿入したら、p要素に戻します。しかし、確実に入れ子になったp要素を無視するより良い方法があるかもしれません。 「私は、それはあなたが何であるかに結論に来るのをあなたの質問はとてもそのハード非常にあいまいである
<?php
function mytheme_preprocess_node(&$variables) {
$codeToInsert = '<div>A bunch of stuff to add after the 4th paragraph.</div>';
$contentToAlter = $variables['content']['body'][0]['#markup'];
$contentToAlter = explode("<p>", $contentToAlter);
$contentToAlter[3] .= $codeToInsert ;
$contentToAlter = implode($contentToAlter, "<p>");
$variables['content']['body'][0]['#markup'] = $contentToAlter;
}
私はあなたが実行時にあなたの要素を交換するためにPHPをしたい正しく理解していた場合。 PHPはサーバー側ですが、代わりにJQuery/Javascriptを使用することをお勧めします – Jesus
このHTMLコードをPHPコードに付けて修正したいのですか、それともブラウザで変更したいですか? –