Подтвердить что ты не робот

Получить текстовый элемент

Я новичок. Я пытаюсь вскрыть окно предупреждения с текстовым содержимым <div>, но я получаю null.

Javascript:

alert(document.getElementById("ticker").value);

HTML

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
    <script src="Tick.js" type="text/javascript"></script>
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
            <div   id="ticker">
               Sample
            </div>
</asp:Content >

Что я делаю неправильно?

4b9b3361

Ответ 1

Try:

alert(document.getElementById("ticker").innerHTML);

Имейте в виду, что текст внутри node считается дочерним элементом этого node, innerHTML будет возвращать весь HTML внутри этого элемента.

Здесь объясняется: http://www.quirksmode.org/dom/intro.html

Если текст является единственным дочерним innerHTML будет работать нормально

Следующий код эквивалентен использованию innerHTML для вашего образца:

alert(document.getElementById("ticker").firstChild.nodeValue);

он извлекает значение node первого дочернего элемента вашего div

Ответ 2

innerHTML предоставит вам весь контент, находящийся внутри элемента, включая HTML-элементы, все остальные узлы и текст в них. Если вы хотите получить только текст, который находится непосредственно в элементе, используйте nodeValue или text Content:

вот так:   текст

var a = document.getElementById("id").childNodes[0].nodeValue;
var b = document.getElementById("id").childNodes[0].textContent;

Это получит текст - "abc" и поместит его в переменные a и b, оба они будут иметь "abc". Однако будьте осторожны с textContent, поскольку textContent не поддерживается в Internet Explorer 8, nodeValue, с другой стороны, находится в DOM1, что означает, что его поддерживают очень старые браузеры. А также, если вы новичок, может быть, вы не знаете, но если вы выполняете код javascript сразу после открытой веб-страницы браузера, вам нужно связать файлы javascript в нижней части вашего html-кода прямо перед тегом закрытия тела, это потому что если вы попытаетесь получить/установить текст, например, для одного элемента, и если этот элемент еще не загружен браузером, вы получите ошибку javascript, и ваш код не будет работать. Это произойдет, если вы свяжете свои файлы javascript или поместите код javascript в начало страницы. Браузеры читают страницу сверху вниз, и, читая ее, они выполняют все и помещают в память компьютера - ОЗУ, это называется синтаксический анализ. Поэтому, если вы поместите код javascript перед загрузкой содержимого страницы и если код javascript пытается прочитать или установить какой-либо элемент, который еще не читается браузером, вы получите сообщение об ошибке.

Ответ 3

Используйте innerHTML.

alert(document.getElementById('ticker').innerHTML);

Или даже лучше, используйте jQuery text():

alert($('#ticker').text());

Ответ 4

alert(document.getElementById("ticker").innerHTML);

Ответ 5

Он не будет доступен, пока документ не будет загружен. Измените код JS на:

window.onload = function() {
   alert(document.getElementById("ticker").innerHTML);
}