2010-12-23 55 views
4

我有這樣的事情jQuery的回報元素HTML而不是內容

<ul> 
<li class="aclass" id="a">content</li> 
<li class="aclass" id="b">content</li> 
<li class="aclass" id="c">content</li> 
<li class="aclass" id="d">content</li> 
<li class="aclass" id="e">content</li> 
<li class="aclass" id="f">content</li> 
</ul> 

我有這樣的代碼

$(".aclass").live("mousedown",function() { 

alert($this.html()); 

}); 

這將提醒的內容,我想這樣做是警惕整個元素像

<li class="aclass" id="f">content</li> 

我試過$(本).parent(),但返回整個UL

+1

的精確副本[jQuery的 - 獲得所選元素外HTML(http://stackoverflow.com/questions/ 2419749/jquery-get-selected-elements-external-html) – redsquare 2010-12-23 08:49:33

回答

6
alert($(this).clone().wrap('<div/>').parent().html()); 
+0

+1這看起來很聰明。 – Sarfraz 2010-12-23 08:51:22

+3

但是,您將以無效的標記結束。應該首先克隆元素 – redsquare 2010-12-23 08:52:12

0

爲了得到一個DOM節點,你可以使用屬性的HTML代碼outerHTML

var html = document.getElementById('someId').outerHTML; 

在Firefox這個傷心地行不通的。但是您可以使用XMLSerializer來實現相同的結果。像這樣

var elm = document.getElementById('someId'); 
var xmls = new XMLSerializer(); 
var html = xmls.serializeToString(elm); 
在你的jQuery代碼

這可能是這個樣子:

$(".aclass").live("mousedown",function() { 
    alert(this.outerHTML || new XMLSerializer().serializeToString(this) ); 
}); 
相關問題