2014-09-13 80 views
0

我试图将一个Node或HTMLElement的纯html转换为字符串,但我似乎无法获得正确的结果,如控制台中所示。这意味着仅仅是HTML元素,而不是它的子元素......如何从节点或HTMLElement获取html?

CODE

function eventData(e){ 
    return { 
     'sender': e.srcElement || e.target, 
     'event': e || window.event, 
    }; 
}; 

$(document).ready(function(e){ 
    var $elm = $("<input class='test' data-type='text only'/>").attr({'type':'button','value':'Test'}); 
    $elm.appendTo('#target'); 
    $elm.click(function(e) { alert(eventData(e).sender.value); }); 
    $('#asHTML').text($elm[0].toString()); 

    //Console is the best way to display a node object; 
    //Open your console to see the result; 
    console.log($elm[0]); 
}); 

我只是想知道,如果已经成功做到了这一点任何一个你!

DEMO:http://jsfiddle.net/0xfwLfwj/1/

编辑 有更好的解释更新小提琴:http://jsfiddle.net/ttoom9hc/10/

+0

为什么使用'eventData'? jQuery为您解决IE问题。 – Oriol 2014-09-13 00:32:51

+1

尝试使用'$ elm [0] .innerHTML'或$ $ elm [0] .outerHTML'来获取'HTMLElement'实例的html。不确定在Node节点实例中你想要做什么。 – Oriol 2014-09-13 00:37:31

+0

也许'this.get(0);' – 2014-09-13 00:40:47

回答

0

如果这是你想显示什么 -

<input class="test" data-type="text only" type="button" value="Test"> 

那么这是对一段代码它 -

$('#asHTML').text($elm[0].outerHTML); 

这里是一个fiddle

+0

看来我的问题错过了一条线。我只需要当前元素的字符串,而不是它的子元素。 – 2014-09-15 00:01:53

+0

那么你想实现什么输出? – 2014-09-15 00:05:43

+0

我已更新此帖子以更好地解释所需的输出./ – 2014-09-15 22:06:29

0

你试过

$elm.html() 

这应该给你的元素作为字符串的HTML。 http://api.jquery.com/html/

+0

这样做有效,但它也读取它的子元素。我只需要实际的HTML元素。也许有一种方法可以避免子元素? – 2014-09-15 00:04:40