2013-03-03 35 views
1

我有一个字符串,例如看起来像这样。我可以在存储在HTML字符串中的信息上使用addClass吗?

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-preview添加类吗?
其实我的问题是所有的javascripting修改现有的变量。我想要做的另一件事是用一个新标签替换整个标签。

谢谢。

回答

0

感谢您的意见,但因为这是从我的错误输入它并没有解决我的问题和原因。 我正在通过使用innerHTML获取html,并且这对解决方案不起作用。

我将代码留给任何需要它的人。该代码是获取我的DIV的一种方式,当ajax获得成功时,它将更改并删除id wmd-preview。

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'); 
    } 
}); 
3

您可以打开该HTML成一个DOM元素:

var element = $(html); 

然后选择你想要的DIV:

var div = element.find('#wmd-preview'); 

然后添加类:

div.addClass('new-class'); 

编辑

要打开您的修改后的DOM元素返回到一个HTML字符串,可以使用jQuery's html function

html = element.html(); 

注意,这使元件的内部HTML,所以封闭DIV丢失。您可以通过将其添加到另一个div来解决此问题。

html = $('<div></div>').append(element).html(); 
+0

此解决方案的问题是,该HTML变种将被打破,不能张贴正确? 我需要更改html var,以便我可以发布新版本。 – 2013-03-03 19:21:37

+0

@Sun_Blood,我用一些可能有用的代码编辑了我的答案。 – 2013-03-03 19:49:22

0

这里是你想要做什么

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') 
+0

这看起来像我在找什么,但我无法让它工作。我的代码 '$(html).find(“div#wmd-preview”)。addClass('templatemo_post_text grid-85'); $(html).insertAfter('div#post_area');' – 2013-03-03 19:26:12

相关问题