Jquery - 获取DIV中的所有内容除了特定对象

时间:2010-11-11 01:47:15

标签: jquery html exception

如何获取DIV内的所有内容?我想在我的页面上保存#wrapper DIV中存在的所有代码。这很容易。但问题是......如何为一个特定对象选择所有EXCEPT(带有“main”类的图像)。

您可以在此处查看其工作原理http://www.jsfiddle.net/8A27a/

这是我到目前为止所做的:

        <div id="wrapper">
            <div class="icon"><img src="http://www.yousendit.com/en_US/theme_default/images/g_logo_trans_110x63.gif"></div>
            <div class="icon"><img src="http://www.yousendit.com/en_US/theme_default/images/g_logo_trans_110x63.gif"></div>   
            <div class="icon"><img src="http://www.yousendit.com/en_US/theme_default/images/g_logo_trans_110x63.gif"></div>  
            <img class="main" src="http://afteramerica.files.wordpress.com/2010/01/061221225103_abraham_lincoln_lg1.jpg">
        </div>

        <input type="button" value="save" class="save">

    <script>
$(document).ready(function() { 
            $('.save').live('click', function() {
                var content = $('#wrapper').html();
                alert(content);
             });
});
</script>

3 个答案:

答案 0 :(得分:9)

我能想到的唯一可靠方法是克隆DIV,删除IMG标记并获取生成的HTML:

var e = $('#wrapper').clone();
$('img.main', e).remove();
alert(e.html());

请注意,对于包含大量内容的DIV,这可能效率低下。

答案 1 :(得分:3)

试试这个

$('.save').live('click', function() {
    var content = $('#wrapper > *').not('img.main').clone();
    content = $('<div></div>').append(content);
    content = content.html();
    alert(content);
 });

[edit]改进示例以匹配OP的示例。

答案 2 :(得分:1)

查看.not选择器:http://api.jquery.com/not-selector/