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。