Как отобразить переменные JavaScript на HTML-странице без документа.писать
Я пытаюсь отобразить некоторую переменную JavaScript на моей HTML-странице.
Я впервые использовал document.write()
но он используется для перезаписи текущей страницы при вызове функции.
после поиска вокруг, общий консенсус был в том, что document.write()
не очень понравилось. Каковы другие варианты?
Я нашел страницу, предлагающую использовать .innerHTML
но это было написано в 2005 году.
jsFiddle иллюстрирует мою проблему http://jsfiddle.net/xHk5g/
9 ответов:
Element.innerHTML
это в значительной степени путь. Вот несколько способов его использования:HTML
<div class="results"></div>
JavaScript
// 'Modern' browsers (IE8+, use CSS-style selectors) document.querySelector('.results').innerHTML = 'Hello World!'; // Using the jQuery library $('.results').html('Hello World!');
если вы просто хотите обновить часть
<div>
Я обычно просто добавить пустой элемент с классом какvalue
или один я хочу заменить содержимое на основной<div>
. например,<div class="content">Hello <span class='value'></span></div>
тогда я бы использовал такой код:
// 'Modern' browsers (IE8+, use CSS-style selectors) document.querySelector('.content .value').innerHTML = 'World!'; // Using the jQuery library $(".content .value").html("World!");
тогда HTML / DOM теперь будет содержат:
<div class="content">Hello <span class='value'>World!</span></div>
полный пример. Нажмите кнопку Выполнить фрагмент, чтобы попробовать его.
// Plain Javascript Example var $jsName = document.querySelector('.name'); var $jsValue = document.querySelector('.jsValue'); $jsName.addEventListener('input', function(event){ $jsValue.innerHTML = $jsName.value; }, false); // JQuery example var $jqName = $('.name'); var $jqValue = $('.jqValue'); $jqName.on('input', function(event){ $jqValue.html($jqName.val()); });
html { font-family: sans-serif; font-size: 16px; } h1 { margin: 1em 0 0.25em 0; } input[type=text] { padding: 0.5em; } .jsValue, .jqValue { color: red; }
<!DOCTYPE html> <html> <head> <script src="https://code.jquery.com/jquery-1.11.3.js"></script> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>Setting HTML content example</title> </head> <body> <!-- This <input> field is where I'm getting the name from --> <label>Enter your name: <input class="name" type="text" value="World"/></label> <!-- Plain Javascript Example --> <h1>Plain Javascript Example</h1>Hello <span class="jsValue">World</span> <!-- jQuery Example --> <h1>jQuery Example</h1>Hello <span class="jqValue">World</span> </body> </html>
вы можете использовать javascript для доступа к элементам на странице и изменять их содержимое. Так, например, у вас может быть страница с некоторой разметкой HTML, например:
<div id="MyEdit"> This text will change </div>
вы можете использовать javascript, чтобы изменить содержимое так...
document.getElementById("MyEdit").innerHTML = "My new text!";
вы также можете посмотреть на использование библиотека javascript JQuery для манипуляции DOM, он имеет некоторые большие возможности, чтобы сделать такие вещи, как это очень простой.
например, с помощью JQuery вы можете сделать это, чтобы получить тот же результат...
$("#MyEdit").html("My new text!");
вот рабочий пример версии JQuery
на основе вы указали в вашем посте. Следующий JQuery будет работать для вас:
var x = "hello wolrd"; $("p").html(x);
С помощью
P
тег, как это, однако, не рекомендуется. Вы бы в идеале хотели чтобы использовать элемент с уникальным идентификатором, чтобы вы могли убедиться, что вы выбираете правильный с помощью JQuery.
есть разные способы делать это. один из способов-написать сценарий, извлекающий команду. вот так:
var name="kieran"; document.write=(name);
или мы могли бы использовать JavaScript по умолчанию способ его печати.
var name="kieran"; document.getElementById("output").innerHTML=name; and the html code would be: <p id="output"></p>
надеюсь, это помогло :)
вы можете использовать jquery, чтобы получить доступ к элементу html, который вы хотите загрузить значение.
скажем, например, если ваша страница выглядит примерно так,
<div id="FirstDiv"> <div id="SecondDiv"> ... </div> </div>
и если ваш javascript (я надеюсь) выглядит так просто, как это,
function somefunction(){ var somevalue = "Data to be inserted"; $("#SecondDiv").text(somevalue); }
Я надеюсь, это то, что вы искали.
Если вы хотите избежать innerHTML, вы можете использовать методы DOM для создания элементов и добавления их на страницу.
var element = document.createElement('div'); var text = document.createTextNode('This is some text'); element.appendChild(text); document.body.appendChild(element);
innerHTML в порядке и по-прежнему действует. Использовать его все время на проектах, больших и малых. Я просто перелистнул на открытую вкладку в моей IDE, и там был один прямо там.
document.getElementById("data-progress").innerHTML = "<img src='../images/loading.gif'/>";
мало что изменилось в JS + DOM манипуляции с 2005 года, кроме добавления большего количества библиотек. Вы можете легко установить другие свойства, такие как
uploadElement.style.width = "100%";
привет вот простой пример:
<div id="test">content</div>
иvar test = 5; document.getElementById('test').innerHTML = test;
и вы можете проверить его здесь : http://jsfiddle.net/SLbKX/