Jquery返回元素html而不是内容

时间:2010-12-23 08:45:54

标签: jquery

我有类似的东西

<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>

我尝试过$(this).parent()但返回整个UL

3 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:0)

alert($('<div/>').append($(this).clone()).html());

http://jsfiddle.net/keegan3d/nfEyQ/

答案 2 :(得分:0)

要获取DOM-Node的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)  );
});