将字符串解析为 javascript 中的 html
Parse string as a html in javascript
我有一个 HTML 标签,因为字符串来自控制器。我需要在 html 中解析它。代码就像,
var str = '<span id="c.s.y"></span> Y <span id="c.s.m"></span> M';
var parsed = $.parseHTML(str);
这将字符串解析为 html..但我必须在每个单独的标签之前附加一些文本..我将每个标签提取为,
$.each( parsed , function( i, el ) { console.log("asd" + el + "asd"); });
我无法在此处显示的每个标签中附加文本 [object HTMLSpanElement]
[object Text]
..如何在此处附加文本..
我想要输出为
asd <span id="c.s.y"></span> asd
asd Y asd
asd <span id="c.s.m"></span> asd
asd N asd
对于 HTML 个元素,您可以使用 outerHTML
属性
$.each(parsed, function(i, el) {
var $el = $(el);
if ($el.prop('outerHTML'))
console.log("asd" + $el.prop('outerHTML') + "asd");
else
console.log("asd" + $el.text() + "asd");
});
要让您的 html 成为您可以使用的东西,请使用:
$("<div/>").html(txt);
例如,在您的情况下:
var str = '<span id="c.s.y"></span> Y <span id="c.s.m"></span> M';
var parsed = $("<div/>").html(str);
然后您将 'parsed' 作为 'normal' jquery 对象,您可以根据需要对其进行操作,例如:
parsed.find("*").wrap("<span>");
parsed.contents().wrap("<span>");
$("#myid").append(parsed);
由于 .wrap()
应用标签,在您的情况下,您需要使用 .append
和 .prepend
,例如:
parsed.find("*").andSelf().append(" asd ").prepend(" asd ");
我有一个 HTML 标签,因为字符串来自控制器。我需要在 html 中解析它。代码就像,
var str = '<span id="c.s.y"></span> Y <span id="c.s.m"></span> M';
var parsed = $.parseHTML(str);
这将字符串解析为 html..但我必须在每个单独的标签之前附加一些文本..我将每个标签提取为,
$.each( parsed , function( i, el ) { console.log("asd" + el + "asd"); });
我无法在此处显示的每个标签中附加文本 [object HTMLSpanElement]
[object Text]
..如何在此处附加文本..
我想要输出为
asd <span id="c.s.y"></span> asd
asd Y asd
asd <span id="c.s.m"></span> asd
asd N asd
对于 HTML 个元素,您可以使用 outerHTML
属性
$.each(parsed, function(i, el) {
var $el = $(el);
if ($el.prop('outerHTML'))
console.log("asd" + $el.prop('outerHTML') + "asd");
else
console.log("asd" + $el.text() + "asd");
});
要让您的 html 成为您可以使用的东西,请使用:
$("<div/>").html(txt);
例如,在您的情况下:
var str = '<span id="c.s.y"></span> Y <span id="c.s.m"></span> M';
var parsed = $("<div/>").html(str);
然后您将 'parsed' 作为 'normal' jquery 对象,您可以根据需要对其进行操作,例如:
parsed.find("*").wrap("<span>");
parsed.contents().wrap("<span>");
$("#myid").append(parsed);
由于 .wrap()
应用标签,在您的情况下,您需要使用 .append
和 .prepend
,例如:
parsed.find("*").andSelf().append(" asd ").prepend(" asd ");