Jquery - получение всего содержимого внутри DIV, кроме определенного объекта - PullRequest
3 голосов
/ 11 ноября 2010

как мне получить весь контент внутри DIV? Я хочу сохранить весь код, который существует в #wrapper DIV на моей странице. Это просто. Но дело в том ... как выбрать все, КРОМЕ для одного конкретного объекта (изображение с "основным" классом).

Вы можете увидеть, как это работает здесь 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 ]

9 голосов
/ 11 ноября 2010

Единственный надежный способ, который я могу придумать, - это клонировать DIV, удалить тег IMG и получить полученный HTML:

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

Обратите внимание, что это может быть неэффективно для DIV с большим количеством контента.

3 голосов
/ 11 ноября 2010

попробуйте

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

[править] улучшенный пример, чтобы соответствовать примеру OP.

1 голос
/ 11 ноября 2010

Посмотрите на селектор .not: http://api.jquery.com/not-selector/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...