2015-04-03 16 views
11

Próbuję złapać „wartość” wewnątrz tego div, który można edytować:Dlaczego innerHTML zwraca "niezdefiniowany"?

<div class="editable-div" contentEditable="true">Hey</div> 

wyobraziłem mogłem zrobić to po prostu za pośrednictwem javascript:

var changedText = $('.editable-div').innerHtml 

Jednak ta zmienna będzie zawsze return "undefined", co dezorientuje mnie.

Czy ktoś może mnie oświecić, jak osiągnąć tę "wartość"?

+2

Tworzysz obiekt jQuery. Nie ma właściwości "innerHTML". Powinieneś użyć metody 'html', która odczytuje właściwość' innerHTML' za kulisami! '$ ('. editable-div'). html()' – undefined

+0

@Vohuman Dzięki, stary! – Yeats

Odpowiedz

24

Jest jQuery - trzeba użyć:

$('.editable-div').html() 
+2

Ah duh, czasami nie jestem pewien, gdzie kończy się JavaScript i zaczyna się jQuery. Dzięki! – Yeats

+2

Podpowiedź: jeśli jest '$', to prawdopodobnie jQuery – dave

+0

Jest dostarczane z exp = -) jQuery - tylko biblioteka, ale potężna biblioteka) nie zapomnij o zatwierdzeniu i poprawie SO – Legendary

1

innerHtml jest używany z selektorem javascript i używasz jQuery. więc zamień innerHtml z funkcją .html() lub .text().

Użyj tego:

var changedText = $('.editable-div').html(); 
0

InnerHTML jest DOM. spróbuj $ ('. editable-div') [0] .innerHtml

3

Obiekt zawinięty jQuery w rzeczywistości nie jest surowym węzłem DOM, ale w istocie tablicą surowych węzłów DOM, które można wykorzystać za pomocą specyficznych metod jQuery, takich jak jako .html(). Jeśli chcesz współpracować z węzła DOM, można pobrać go albo przez iteracja listy lub uzyskanie element tej listy, jeśli wiesz, który z nich to:

$('div').each(function(index, element) { 
    element.innerHTML // ... 
} 

$('div').get(0).innerHTML 
$('div')[0].innerHTML 

pamiętać, że jest to „rodzaj "podobnie jak w przypadku tablicy, w której można uzyskać węzły DOM przy użyciu składni tablicy $('div')[0], nie można traktować jej jak tablicy w JavaScript. Innymi słowy, nie można to zrobić:

$('div').forEach(function(element) { 
    element.innerHTML 
} 
Powiązane problemy