Php 如何仅替换作为blockquote元素子元素的段落?
使用PHP,如何仅替换作为blockquote元素子元素的段落?我需要在运行其他一些函数时暂时转换这些段落元素,然后在这些函数完成运行后将它们更改回“p”“/p”元素。(即,将“p”“/p”更改为“ptemp”“/ptemp”或类似的内容。) 以下是我的代码示例:Php 如何仅替换作为blockquote元素子元素的段落?,php,elements,paragraph,Php,Elements,Paragraph,使用PHP,如何仅替换作为blockquote元素子元素的段落?我需要在运行其他一些函数时暂时转换这些段落元素,然后在这些函数完成运行后将它们更改回“p”“/p”元素。(即,将“p”“/p”更改为“ptemp”“/ptemp”或类似的内容。) 以下是我的代码示例: <blockquote> <div> <p class="replace-this-element">Some Text</p> </div> </bl
<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之前需要插入代码,因此不能使用js或jQuery。我需要忽略嵌套在块引号中的段落,这样代码就不会嵌入到块引号中
我的想法是更改块引号中的p元素,以便在第4段之后插入新代码时忽略这些元素。然后在插入代码后将它们更改回p元素。但是,也许有更好的方法可以忽略嵌套的p元素
以下是通过drupal template.php文件调用和更改标记的代码:
<?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;
}
你的问题很模糊,所以我很难对你到底想要什么下结论,但这是可行的
使用JQuery,它更改替换此元素
,并将其转换为h1
(我这样做是因为您指定要将这些元素更改为ptemp,但ptemp不是html可以识别的元素),然后它将其交换回来。如果运行该代码段,您将无法看到任何情况发生,因为othermethod()
中没有任何内容
替换_元素();
其他方法();
替换_元素_back();
函数替换_元素(){
$(“blockquote div”).html('Some Text');
}
函数其他_方法(){
}
函数替换元素返回(){
$(“blockquote div”).html(“一些文本”
”;
}
一些文本
某些文本
一些文本
如果我理解正确,您希望php在运行时替换您的元素。PHP是服务器端,我建议使用JQuery/Javascript。您是想将此HTML代码赋予PHP代码并对其进行修改,还是想在浏览器中对其进行修改?