Javascript 我可以对存储在HTML字符串中的信息使用addClass吗?
我有一个字符串,例如看起来像这样Javascript 我可以对存储在HTML字符串中的信息使用addClass吗?,javascript,jquery,Javascript,Jquery,我有一个字符串,例如看起来像这样 var html = '<div class="templatemo_post_text grid-85"> <div id="wmd-preview"><h2>Skriv något!</h2> <p>Lorem ipsum</p></div> <div class="templatemo_post_footer"> <div class="templatem
var html = '<div class="templatemo_post_text grid-85">
<div id="wmd-preview"><h2>Skriv något!</h2>
<p>Lorem ipsum</p></div>
<div class="templatemo_post_footer">
<div class="templatemo_post_on">
<span class="orange">Skrivet den</span> 3 Mar 2013</div>
<div class="templatemo_post_comment">
<a href="#">Inlägg nummer </a>
</div></div></div>';
我能否以某种方式使用.addClass将类添加到id=wmd预览中?
实际上,我的问题是所有Java脚本都要修改现有变量。我想做的另一件事是用新标签替换整个标签
谢谢。您可以将HTML转换为DOM元素:
var element = $(html);
然后选择所需的div:
var div = element.find('#wmd-preview');
然后添加类:
div.addClass('new-class');
编辑
要将修改后的DOM元素转换回HTML字符串,可以使用:
注意,这给出了元素的内部HTML,因此缺少封闭的div。您可以通过将其添加到另一个div来解决此问题
html = $('<div></div>').append(element).html();
这是你想要做的
var html = '<div class="templatemo_post_text grid-85"><div id="wmd-preview"><h2>Skriv något!</h2><p>Lorem ipsum</p></div><div class="templatemo_post_footer"><div class="templatemo_post_on"><span class="orange">Skrivet den</span> 3 Mar 2013</div><div class="templatemo_post_comment"><a href="#">Inlägg nummer </a></div></div></div>';
$(html).find('.orange').addClass('someclass')
谢谢你的评论,但这并没有解决我的问题,原因是我的意见不好。 我是通过使用innerHTML来获取html的,但这与解决方案不兼容 我把我的代码留在这里给任何需要它的人。代码是获取我的DIV的一种方式,当ajax获得成功时,它将更改并删除id wmd预览
mydiv = document.createElement('div')
mydiv.className = 'templatemo_post_area addbottom grid-parent';
mydiv.innerHTML = document.getElementById('preview').innerHTML;
$.ajax({
type: "POST",
dataType: 'json',
url: "/pages/posts_ajax.php",
data: {
data : text,
time : timepost
},
success: function(response) {
$(mydiv).find('#wmd-preview').removeAttr('id');
$(mydiv).find('#postnr').text('Inlägg nummer '+response.id);
$(mydiv).insertAfter('div#post_area');
}
});
这个解决方案的问题是html变量将被破坏,无法正确发布?我需要更改html变量,以便发布新版本。@Sun\u Blood,我已经用一些代码编辑了我的答案,这些代码可能会有所帮助。这看起来像我正在寻找的,但我无法让它工作。我的代码$html.finddivwmd preview.addClass'templatemo_post_text grid-85'$html.insertAfter'divpost_area';
mydiv = document.createElement('div')
mydiv.className = 'templatemo_post_area addbottom grid-parent';
mydiv.innerHTML = document.getElementById('preview').innerHTML;
$.ajax({
type: "POST",
dataType: 'json',
url: "/pages/posts_ajax.php",
data: {
data : text,
time : timepost
},
success: function(response) {
$(mydiv).find('#wmd-preview').removeAttr('id');
$(mydiv).find('#postnr').text('Inlägg nummer '+response.id);
$(mydiv).insertAfter('div#post_area');
}
});