如何仅从字符串中获取HTML标记

时间:2016-07-28 12:33:21

标签: jquery html

是否可以使用jQuery(或普通的旧JavaScript)从字符串中获取HTML标记?

实施例

var htmltag = "<table><tr><td>sample text</td><td><input type="submit" value="Click"/></td></tr></table>";

输出必须如下:

<input type="submit" value="Click"/>

如何使用jQuery从字符串中获取HTML标记?

2 个答案:

答案 0 :(得分:7)

将您的字符串包装在jQuery对象中,然后对其使用任何横向方法。

如果您希望元素为jq对象:

var $input = $(htmltag).find('input');

如果你想要它作为字符串:

var inputHTML = $(htmltag).find('input').prop('outerHTML');

答案 1 :(得分:0)

正如RegEx match open tags except XHTML self-contained tags中的(发布此内容)最高评级答案中提到的 - 使用正则表达式解析HTML通常可能是一个坏主意。该线程有一些有趣的点点滴滴,所以如果你正在考虑使用RegEx解析一些HTML,请继续阅读。讨论了很多案例。

在这个示例中,如果OP确切输入,它确实有效。使用任意HTML片段确实是个坏主意。就像一个例子,考虑在HTML <input type='text' value='this is cool :>' />中使用这个字段,它会完全破坏解析。 (即使它应该是&amp; gt; ......这是现实世界,不要期望它是一个)。所以要非常小心和体贴你的所作所为。

我原来的回答是:

您可以使用正则表达式来匹配您想要的内容。在这种情况下,它可能如下所示:

htmltag.match("<input .*?>");

结果将是一个仅包含输入标记

的数组