Как отображать переменные JavaScript на странице HTML без document.write
Я пытаюсь отобразить некоторую переменную JavaScript на моей странице HTML.
Сначала я использовал document.write()
, но он использовал, чтобы перезаписать текущую страницу при вызове функции.
После поиска, общий консенсус состоял в том, что document.write()
не очень нравится. Каковы другие варианты?
Я нашел страницу, предлагающую использовать .innerHTML
, но написанную в 2005 году.
A jsFiddle, иллюстрирующий мою проблему http://jsfiddle.net/xHk5g/
Ответы
Ответ 1
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>
Ответ 2
Вы можете использовать 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.
Ответ 3
есть разные способы сделать это.
одним из способов было бы написать команду script для извлечения команды.
так:
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>
Надеюсь, это помогло:)
Ответ 4
Вы можете использовать jquery, чтобы получить элемент html, который вы хотите загрузить.
Скажите, например, если ваша страница выглядит примерно так,
<div id="FirstDiv">
<div id="SecondDiv">
...
</div>
</div>
И если ваш javascript (надеюсь) выглядит так просто, как это,
function somefunction(){
var somevalue = "Data to be inserted";
$("#SecondDiv").text(somevalue);
}
Надеюсь, это то, что вы искали.
Ответ 5
innerHTML отлично и все еще действует. Используйте его все время для больших и малых проектов. Я просто перевернулся на открытую вкладку в моей среде IDE, и там был один.
document.getElementById("data-progress").innerHTML = "<img src='../images/loading.gif'/>";
С 2005 года в js + dom мало что изменилось, кроме добавления большего количества библиотек. Вы можете легко установить другие свойства, такие как
uploadElement.style.width = "100%";
Ответ 6
Если вы хотите избежать innerHTML, вы можете использовать методы DOM для создания элементов и добавления их на страницу.
var element = document.createElement('div');
var text = document.createTextNode('This is some text');
element.appendChild(text);
document.body.appendChild(element);
Ответ 7
hi вот простой пример: <div id="test">content</div>
и
var test = 5;
document.getElementById('test').innerHTML = test;
и вы можете проверить его здесь: http://jsfiddle.net/SLbKX/
Ответ 8
Добавьте элемент на свою страницу (например, div) и напишите в этот div.
HTML:
<html>
<header>
<title>Page Title</title>
</header>
<body>
<div id="myDiv"></div>
</body>
</html>
JQuery
$('#myDiv').text('hello world!');
JavaScript:
document.getElementById('myDiv').innerHTML = 'hello world!';
Ответ 9
Как и выше, но я использовал (это было в CSHTML):
JavaScript:
var value = "Hello World!"<br>
$('.output').html(value);
CSHTML:
<div class="output"></div>