jQuery将整个DIV拉入字符串变量?

时间:2011-04-08 03:06:48

标签: jquery html string variables

你好,我对如何在jQuery(1.5.2)中使用 this 感到有点困惑。

对于嵌套评论帖,我正在导航到父评论的回复链接。我正试图抓住它,操纵字符串,并将其吐出页面上的其他地方。

这就是我穿越树到达目标的方式:
$('.commentlist > li > div .reply').each(function() {

此时我可以通过使用var reply = this;来吞噬这整个div - 如果我只是克隆它就行得很好 - 但老实说我不知道​​如何获取这些信息并采摘只是完整的HTML字符串。

思想?

更新

你好。目标是将这个伙伴复制到每个匹配的简单字符串变量中:

<div class="reply">
<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>
</div>

使用alert ($(this).html());仅返回内部锚标记&amp;内容,而不是div包装器。想法?

5 个答案:

答案 0 :(得分:6)

您可以将其克隆到另一个<div>,然后在其上调用html()

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

例如:http://jsfiddle.net/ambiguous/59zwr/1/

答案 1 :(得分:3)

终于搞定了.. !!最简单的方法!!
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 :(得分:2)

你可以得到父母......

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

...

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

答案 3 :(得分:0)

你可以......

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

jsFiddle

另请注意,IE具有原生outerHTML属性。

答案 4 :(得分:0)

嘿伙计,这是你想要做的吗?你的问题有点模糊,所以我做了一些假设。如果这不是您想要操纵的,请告诉我。

<!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>