我有一个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
答案 0 :(得分:1)
对于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");
});
答案 1 :(得分:0)
要将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);
然后你解析了#39;作为一个正常的&#39;您可以根据需要操作的jquery对象,例如:
parsed.find("*").wrap("<span>");
parsed.contents().wrap("<span>");
$("#myid").append(parsed);
由于.wrap()
会应用代码,因此您需要使用.append
和.prepend
,例如:
parsed.find("*").andSelf().append(" asd ").prepend(" asd ");