如何通过脚本关闭html标签?

时间:2015-11-06 10:03:19

标签: javascript html

我认为这应该很容易实现,但我不知道应该在哪里搜索。

我想要的是以下内容。我有一个脚本将搜索字符串[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并在其后打开一个段落。 请留意一些建议。 提前谢谢。

2 个答案:

答案 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>