我试图将文字转换为我内容中的html
我的PHP代码是
<div id="post-content-<?= $post->id; ?>" data-ui-markdown data-ui-show-more style="overflow: hidden;">
<?= humhub\widgets\RichText::widget(['text' => $post->message, 'record' => $post, 'markdown' => true]) ?>
</div>
我得到了元素
的结果<div id="post-content-22" data-ui-markdown="" data-ui-show-more="" style="overflow: hidden;"><p><a href="https://ibb.co/f3hrTR" rel="noopener noreferrer"><img src="https://preview.ibb.co/hi0Oa6/Chrysanthemum.jpg" alt="Chrysanthemum" border="0"></a> <br>
<a href="https://ibb.co/cCAOa6" rel="noopener noreferrer"><img src="https://preview.ibb.co/kfhEhm/Desert.jpg" alt="Desert" border="0"></a> <br>
<a href="https://ibb.co/jCvZhm" rel="noopener noreferrer"><img src="https://preview.ibb.co/i2Uuhm/Hydrangeas.jpg" alt="Hydrangeas" border="0"></a> <br>
<a href="https://ibb.co/gWVZhm" rel="noopener noreferrer"><img src="https://preview.ibb.co/fzv0Nm/Jellyfish.jpg" alt="Jellyfish" border="0"></a></p></div>
和我的jquery代码
var CttText = $('#post-content-'+<?= $post->id; ?>).text();
$('#post-content-'+<?= $post->id; ?>).wrap(CttText);
但我得到的结果只是第一张图片,而不是其他图片。
答案 0 :(得分:3)
实际上你想在post-content-22
内显示所有4个图像(例如)。不是吗?
如果是,则需要使用.html()
而不是.wrap()
检查以下演示示例: -
var CttText = $('#post-content-22').text();
$('#post-content-22').html(CttText);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="post-content-22" data-ui-markdown="" data-ui-show-more="" style="overflow: hidden;"><p><a href="https://ibb.co/f3hrTR" rel="noopener noreferrer"><img src="https://preview.ibb.co/hi0Oa6/Chrysanthemum.jpg" alt="Chrysanthemum" border="0"></a> <br>
<a href="https://ibb.co/cCAOa6" rel="noopener noreferrer"><img src="https://preview.ibb.co/kfhEhm/Desert.jpg" alt="Desert" border="0"></a> <br>
<a href="https://ibb.co/jCvZhm" rel="noopener noreferrer"><img src="https://preview.ibb.co/i2Uuhm/Hydrangeas.jpg" alt="Hydrangeas" border="0"></a> <br>
<a href="https://ibb.co/gWVZhm" rel="noopener noreferrer"><img src="https://preview.ibb.co/fzv0Nm/Jellyfish.jpg" alt="Jellyfish" border="0"></a></p></div>
根据.wrap()定义: -
.wrap()函数可以接受任何可能的字符串或对象 传递给$()工厂函数以指定DOM结构。这个 结构可以嵌套几层深,但应该只包含 一个最重要的元素。这个结构的副本将被包裹 匹配元素集中的每个元素。这种方法 为链接目的返回原始元素集。
所以在你的情况下,它实际上包裹的div不是图像(你真正想要包装在div中)。这就是为什么只有一个图像显示错误的HTML结构。