2014-09-13 50 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