2011-10-26 13 views
9

文書に挿入する前にhtmlを変更する方法を教えてもらえますか?jQuery - HTML文字列を変更

これは、AJAX呼び出しです:私がやりたいすべてがh1タグの色を変更している

<div class="main-content slide-in"> 
    <h1>Create Album</h1> 
    <div class="inner"> 
    </div> 
</div> 

url: "http://localhost/cart/public/admin/album", 
success: function(html) { 

これは、AJAX呼び出しの結果です。このコードを追加しました

url: "http://localhost/cart/public/admin/album", 
success: function(html) { 
    $(html).find('h1').css('color','red'); 
    $('aside').after(html); 

しかし、これは効果がありません。しかし、jQueryのセレクタは動作しているようです。

url: "http://localhost/cart/public/admin/album", 
success: function(html) { 
    $(html).find('h1').css('color','red'); 
    console.log($(html).find('h1').length); 
    $('aside').after(html); 

console.log正しい出力を使用します。1.それでh1が見つかりました。何らかの理由で、CSSスタイルが適用されていません。

私はちょっと立ち往生しています。私は一歩足りませんか? CSSスタイルに!importantを追加

+0

テキストの色や背景色を変更しようとしていますか? –

+0

http://jsfiddle.netでこの問題のデモを行うことはできますか? – Petr

+0

コードが機能するはずです。追加している要素を非表示にするためのルールがページに含まれていないことを確認してください。 –

答えて

17

が見えます。これを試してみてください:

success: function(html) { 
    var $html = $(html); 
    $html.find('h1').css('color','red'); 
    $('aside').after($html); 
+0

素晴らしい答え:) $ html.find( 'h1')。css( 'color'、 'red')。end()。insertAfter( 'aside') – Kato

+0

注:文字列から 'root '要素を削除すると、変数*がルート要素であるため、' find'を使用することはできません。 –

0

試してみてください。

$(html).find('h1').css("color", "red !important"); 
+1

.css呼び出しで!importantを使用することはできません。 –

2

これを試してください:あなたは色を変更して、DOMにそのまま文字列を追加しているよう

$(html).find('h1').css('color', 'red').parent().insertAfter('aside');

+0

これはHTML要素全体だけではなく、h1を挿入するだけです – Kato

+0

あなたは絶対に編集されています。 –

3

実際に受け入れられた回答は、かなり多くの時間を無駄にしました。少なくともそれは一般的ではありません。これはいつか後で分かったものです。

$.ajax({ 
    url: "http://localhost/~yoelusa/the-url-of-your-string.html", 
    success: function(htmldata) { 
    var $html = $("<div/>").append(htmldata); 
    // make your changes on the html string, see some example bellow relevant to my htmlstring 
    $html.find('#left').html(""); 
    $html.find('#right').html(""); 
    $html.find('.commentlist').remove(); 
    // when you are ready to insert your string somewhere call the html() function, in my example I inserted it in an iframe 
    $("iframe").attr("srcdoc", $html.html()); 
    } 
});