2011-12-21 5 views
4

У меня есть следующий HTMLполучить содержимое HTML в щелкнул элемента JQuery

<label class="editable" id="user_info_username">Hai world...</label> 

Сейчас на функции мыши мне нужно содержание щелкнутого элемента.

я попытался

$(".editable").live("click",function(){ 
alert($(this).html()) //returns Hai world... 
}); 

Но мне нужно содержание HTML

так <label class="editable" id="user_info_username">Hai world...</label>

+0

Возможный дубликат http://stackoverflow.com/questions/2419749/get-selected-elements-outer-html? –

ответ

6

Клонирование щелкнул элемент, завернуть его в <div>, а затем попросить HTML того - что-то вроде:

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

Работа демо на http://jsfiddle.net/f88kj/

я ранее написал плагин, который делает это на https://stackoverflow.com/a/6509421/6782

(function($) { 
    $.fn.outerhtml = function() { 
     return $('<div/>').append(this.clone()).html(); 
    }; 
})(jQuery); 
+0

работает красиво, возможно, более подходящее, чем мое собственное решение. Я обязательно буду использовать это в будущем. –

+0

yup, полностью избегает необходимости менять макет DOM, чтобы получить эту функцию. – Alnitak

+0

Это удобное решение, спасибо ... – Red

1

Что вы ищете, это что-то вроде outerHTML. К сожалению, Firefox в настоящее время не поддерживает его, поэтому ищите здесь: How do I do OuterHTML in firefox?.

1

может быть, вы могли бы использовать обертку, как описано ниже:

HTML:

<div class="YourHtmlContent"> 
<label class="editable" id="user_info_username">Hai world...</label> 
</div> 

и JS:

$(".editable").live("click",function(){ 
alert($('.YourHtmlContent').html()) 
}); 
+0

Нет оберток .............. – Red

1

Ответ с помощью jQuery.clone() лучше всего ИМО, но я добавляю это здесь, как это еще один способ, и может быть полезным другие.

Вы можете получить html любого родительского div - это проблема, потому что могут быть братья и сестры, которые также будут возвращены.

так:

alert($(this).parent().html()); //will return siblings too 

http://jsfiddle.net/Qg9AL/

Смежные вопросы