在jquery html对象中替换class

时间:2013-03-28 02:30:17

标签: javascript jquery html

我一直在尝试使用jquery将函数应用到每个html标记中,并在html对象中导入一些类(从文件导入),但我无法使其工作。我已经查看了SE上的其他几个问题,但无法找到解决问题的方法。

html变量在我的实际用例中包含更多代码,但是这个

html = '<pre class = "classy"> text </pre>'
$(html).find('.classy').each( function (x) { 
    $('<pre class = "classy">' + '<h1>' + x + '<h1>' + '</pre>')
})

'<pre class = "classy"> text </pre>'

其中预期输出更像是

'<pre class = "classy"> <h1> text </h1> </pre>'

.replaceWith也没用,所以我认为我做的事情在概念上是错误的。任何解决方案/提示?

1 个答案:

答案 0 :(得分:2)

尝试

var html = '<pre class = "classy"> text </pre>';
var a = $(html);
a.filter('.classy').each( function (i, x) { 
    $(x).wrapInner('<h1></h1>');
})

此处变量a将包含预期内容<pre class = "classy"> <h1> text </h1> </pre>

演示:Fiddle

在给定的值下,它甚至可以简化为

var a = $(html);
a.each( function (i, x) { 
    $(x).wrapInner('<h1></h1>');
})

演示:Fiddle

注意:如果您希望a的内容为html字符串

var html = $('<div>').append(a.clone()).html();

演示:Fiddle