我认为这应该很容易实现,但我不知道应该在哪里搜索。
我想要的是以下内容。我有一个脚本将搜索字符串[gallery]。当找到[gallery]时,它将用图像替换标签。我已经实现了以下目标:
var raw_data = data.text;
var output = '<figure><img src="//placehold.it/100x100?image”></figure>';
parsedHTML = raw_data.replace(/\[gallery\]/ig, output);
$('article').html(parsedHTML);
现在我希望能够在[gallery]之前和之后获取html标签。
因此,在此示例中要明确,代码应检索段落标记<p>
和</p>
:
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam convallis quam ac tristique imperdiet. **[gallery]** Mauris sit amet mi dignissim, lacinia odio non, porttitor est. Maecenas imperdiet quis sem quis elementum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.<p>
拥有html标签后,在[gallery]之前关闭p并在其后打开一个段落。 请留意一些建议。 提前谢谢。
答案 0 :(得分:1)
或者将P标签放在那里怎么样?
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam convallis quam ac tristique imperdiet</p>
<div class="gallery"></div>
<p>Mauris sit amet mi dignissim, lacinia odio non, porttitor est. Maecenas imperdiet quis sem quis elementum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.<p>
然后为你的jQuery:
var output = '<figure><img src="//placehold.it/100x100?image”></figure>';
$( "div.gallery" ).replaceWith( output );
在你的DOM中插入标签就是要求在线下进行大屠杀,如果他们已经在那里,你就会知道他们将会如何表现!
答案 1 :(得分:0)
正如大家所说,避免复杂的正则表达式解决方案。如果您只想在图像之前和之后创建换行符,可以尝试使用基本的字符串替换来完成这样的操作。
var input = 'IMAGE ID';
var str = '<p>blah blah blah [gallery] blah blah blah [gallery]</p>';
var output = str.replace(/\[gallery\]/g, '<br>' + input + '<br>');
$('#original').html(str);
$('#replaced').html(output);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id = "original"></div>
<div id = "replaced"></div>