2013-03-03 37 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

相關問題