2010-11-09 131 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