jQuery вытащить весь DIV в строковую переменную? - PullRequest
2 голосов
/ 08 апреля 2011

Привет, меня немного смущает, как работать с this в jQuery (1.5.2).

Для вложенной ветки комментариев я перехожу к родительскому комментариюссылка для ответа.Я пытаюсь перехватить ее, манипулировать строкой и выплюнуть ее в другом месте на странице.

Вот как я перемещаю дерево к цели:
$('.commentlist > li > div .reply').each(function() {

В этот момент я могу сожрать весь этот div с помощью var reply = this; - и это прекрасно работает, если я просто клонирую его - но я, честно говоря, не знаю, как взять этот массив информации и собрать просто полная строка HTML из него.

Мысли?

ОБНОВЛЕНИЕ:

Снова привет.Цель состоит в том, чтобы скопировать этого участника в простую строковую переменную для каждого соответствия:

<div class="reply"><br> <a class="comment-reply-link" href="http://someurl/foo/testing-post-four/?replytocom=5#respond" onclick='return addComment.moveForm("comment-5", "5", "respond", "8")'>Reply</a><br> </div>

Использование alert ($(this).html()); возвращает только внутренний тег привязки и содержимое, а не оболочку div.Мысли?

Ответы [ 5 ]

6 голосов
/ 08 апреля 2011

Вы можете клонировать его в другой <div> и затем вызвать html() на этом:

var html = $('<div/>').append($(this).clone()).html();

Например: http://jsfiddle.net/ambiguous/59zwr/1/

3 голосов
/ 11 июня 2013

Наконец-то все заработало .. !!самый простой способ !!
HTML-код

<div class="extra-div">
    <div class="div-to-pull-in-variable">
     // Your Content Here
    </div>
</div>

JQuery-код

    $(function() {
        var completeDiv = $('.extra-div').html();
        alert(completeDiv); 
       })
    });
2 голосов
/ 08 апреля 2011

Вы можете получить родителя ...

<div class='a'>
    blah
</div>

....

alert(jQuery('.a').parent().html())

0 голосов
/ 08 апреля 2011

Эй, чувак, это то, что ты пытался сделать?Ваш вопрос был немного расплывчатым, поэтому я сделал несколько предположений.Дайте мне знать, если это не то, чем вы хотели манипулировать.

<!DOCTYPE html>
<html>
<head>
  <script src="http://code.jquery.com/jquery-1.5.js"></script>
</head>
<body>

    <div id="one"   class="reply"><a href="#">reply link</a></div>
    <div id="two"   class="reply"><a href="#">reply link</a></div>
    <div id="three" class="reply"><a href="#">reply link</a></div>
    <div id="four"  class="reply"><a href="#">reply link</a></div>

    <script type="text/javascript">
        $('.reply').each(function(n){
            var reply = this;
            // You can get attributes, classes, etc. like this
            console.log('ID of this div is: ' + $(reply).attr('id'));
            // You can change them like this
            $(reply).attr('id', n + 1)
            console.log('The new ID of this div is: ' + $(reply).attr('id'));

        }); 
    </script>

</body>
</html>
0 голосов
/ 08 апреля 2011

Вы могли бы сделать ...

$('body *').each(function() {
   var outerHtml = $('<div />').html(this).html();
});

jsFiddle .

Также обратите внимание, что IE имеет собственное свойство outerHTML.

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