jQuery选择器返回的完整HTML对象

给出这个HTML:

  • 而这个选择:

     $("#the_list_item") 

    我想通过jQuery选择器从对象返回获取完整的html。

    使用:

     $("#the_list_item").html() 

    …只是给我内部的html( 部分)

    但是由于:

     $("#the_list_item").attr("id") 

    给我’the_list_item’,这表明整个列表项确实包含在返回的对象中..那么如何从该对象获取完整的代码?

    我想从我的对象中获取一个字符串:

  • ,但无法找到方法。

    一种方法是创建自己的包装器:

     $("#the_list_item").wrap('
    ').parent().html();

    …做你的事,然后解开:

     $("#the_list_item").unwrap(); 

    我不确定这是否有效,但它可能值得一试:

     var html = $('#the_list_item')[0].outerHTML; alert(html); 

    在这里我的解决方案,不需要jQuery!

     // Get a reference to the element by its ID. var oEl = document.getElementById('the_list_item'); // Getting the outerHTML of an element: var sOuterHTML = oEl.outerHTML; alert( sOuterHTML ); 

    或者,它可以通过jQuery获取元素的引用,然后获取outerHTML。

     var sOuterHTML = $('#the_list_item')[0].outerHTML; alert( sOuterHTML ); // or var sOuterHTML = $('#the_list_item').get(0).outerHTML; alert( sOuterHTML ); 

    留下以防万一有人现在仍在寻找这个。
    完整的jQuery解决方案:

     $('#the_list_item').prop('outerHTML'); 

    jQuery中没有“外部html”等价物,但这可能有所帮助: http : //jquery-howto.blogspot.com/2009/02/how-to-get-full-html-string-including.html

    不幸的是,外部HTML解决方案(上面接受的解决方案)在FireFox 9 / Windows 7 / JQuery 1.7上对我不起作用…

    根据Chetan Sastry(上面的回答),这件事对我有用:

     var el = jQuery('#the_list_item').first(); var outerHtml = jQuery('
    ').append(el).html();

    你试过$("#the_list_item").parent().html()

    在这里你可以找到一个jQuery outerHtml插件代码forms的好解决方案:http://yelotofu.com/2008/08/jquery-outerhtml/

    创建一个新的div DOM对象并附加div的克隆,然后获取包装div的内容,最后删除创建的DOM对象。

     var html = $('
    ').append($('#the_list_item').clone()).remove().html();

    有插件。 只需谷歌“jQuery outerhtml”。 其中大部分背后的想法是克隆元素,将其附加到空div并获取div的html。