2010-11-09 136 views
3

这将返回它应该在表内的所有内容。想要返回完整的HTML,包括表标记

alert($('table[width="100%"][cellspacing="0"][cellpadding="10"][border="0"]:eq(0)').html()); 

我该如何获得表以及实际的表标签内的HTML,在这种情况下

<table width="100%" cellspacing="0" cellpadding="10" border="0"> 
----html---- 
</table> 

回答

4

this thread

添加此扩展代码:

$.fn.outer = function(val){ 
    if(val){ 
     $(val).insertBefore(this); 
     $(this).remove(); 
    } 
    else{ return $("<div>").append($(this).clone()).html(); } 
} 

然后你可以这样做:

alert(
    $('table[width="100%"][cellspacing="0"][cellpadding="10"][border="0"]:eq(0)') 
    .outer() 
); 
+0

可爱的小插件,thx – user357034 2010-11-09 14:51:13

2

你打算如何处理HTML?

如果你想要把它别处在DOM则:

$('#place-to-put').append($('table[width="100%"][cellspacing="0"][cellpadding="10"][border="0"]:eq(0)')); 
+1

其实这是我最终想做的事情。感谢你的回答。我应该更具体。但基于我问的问题得到了回答。 – user357034 2010-11-09 15:03:19

+0

很高兴帮助。我想这就是你最有可能想要做的,并且走上了一条捷径! – Treffynnon 2010-11-09 17:03:03

3

它使用outerHTML财产,如果它存在,否则使一个.clone(),其附加到一个新的<div>(未在页面上) ,并获得div的.html()

var table = $('table[width="100%"][cellspacing="0"][cellpadding="10"][border="0"]:eq(0)'); 

var outerTag = table[0].outerHTML || $('<div/>').append(table.clone()).html(); 

alert(outerTag); 
+0

检查outerHtml是一个很好的接触(+1),但我仍然将它添加到$ .fn原型 – 2010-11-09 14:37:21

+0

@seanizer - 是的,将它变成插件当然是一种称为它的简便方法。 – user113716 2010-11-09 14:41:06