2012-02-04 5 views
5

本当に愚かな質問を申し訳ありません。しかしどちらの方法でも動作しません。別の要素を除いた要素からhtml()を取得するにはどうすればよいですか?

<html> 
<head> 
<script src='js/jquery.js' type='text/javascript'></script> 
<script type='text/javascript'> 
    $(document).ready(function() { 
    var htmlcontent = $('.content').not('.dontgrab').html(); 
    alert(htmlcontent); // returns EVERYTHING 
    }); 
</script> 
</head> 
<body> 
<div class='content'> 
    BEFORE 
    <div class='dontgrab'>DON'T GRAB</div> 
    AFTER 
</div> 
</body> 
</html> 

試した$( "。コンテンツ*:not( '。dontgrab')").html(); // NULLを返します

助けてください。

ありがとうございました。

+0

@DavidRodrigues:nope。すでに試した。 –

+0

ありがとうございました。要素を削除してから再作成するほうがずっと簡単だと思います。 –

答えて

10

これはそれを行う必要があります。

var clone = $('div.content').clone(); 
clone.find('.dontgrab').remove(); 

var html = clone.html(); 
+0

文書から.dontgrab要素を削除しますか?私はそれを保つ必要がある! –

+0

(一時的に)クローンを作成します。クローンからのみ削除し、ドキュメントからは削除しません。 –

+0

他の方法はありますか?少し余分なコーディングと思われる。 =) –

-1

私はあなたがやろうとしていると思う:

var htmlcontent = $('.content').remove(".dontgrab").html(); 

状況がようだった場合は、.NOT()を使用することができます

var htmlcontent = $('div').not(".dontgrab").html(); 

<body> 
<div class="content"> 
    BEFORE 

    AFTER 
</div> 
<div class="content dontgrab">DON'T GRAB</div> 
</body> 

私はあなたが選択された要素の子供のために.notを使用できるとは思わない。私はそれが助けてくれることを願っています。

関連する問題