つまり、宣言および初期化された変数/配列を、<script>
タグの外でHTMLで使用できますか? Fx。
<script type="text/javascript">
var foo = array('placeholder1', 'placeholder2');
</script>
<body>
<p><!--access the variable here-->foo[0]</p>
</body>
この場合、変数/配列にどのようにアクセスしますか?このような:
<p><script type="text/javascript">document.print(foo[0])</script></p>
??
これを行うには2つの方法があります。これはより良いものです:
<script type="text/javascript">
// make sure to do this onLoad, for example jQuery's $()
var foo = array('placeholder1', 'placeholder2');
document.getElementById("fooHolder").innerHTML = foo.toString();
</script>
...
<p id="fooHolder"></p>
または、次の方法で行うこともできます(Marcelが指摘するように、XHTMLでは機能せず、実際には使用しないでください)。
<p><script type="text/javascript">document.write(foo)</script></p>
あなたはこのようなことをすることができます:
<script>
var str = 'hello there';
document.getElementById('para').innerHTML = str;
</script>
ここで、要素には指定されたIDがあります。
<p id="para"></p>
スクリプトタグの外ではjavascript変数にアクセスできないだけです。それは、
不必要に冗長ですが、標準のDOMメソッドを使用します。
<script>
window.onload = function(){
// you do not need to initialize like this, but I like to
var bar1 = new String('placeholder1');
var bar2 = new String('placeholder2');
var foo = new Array();
// populate the Array with our Strings
foo.Push(bar1);
foo.Push(bar2);
// create an array containing all the p tags on the page
// (which is this case is only one, would be better to assign an id)
pArray = document.getElementsByTagName('p');
// create a text node in the document, this is the proper DOM method
bar1TextNode = document.createTextNode(foo[0].toString());
// append our new text node to the element in question
pArray[0].appendChild(bar1TextNode);
};
</script>
<body>
<p></p>
</body>
AngularJSの式を使用することもできます。
<html>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.framework= "AngularJS";
});
</script>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
<p>I want to use variables directly in HTML using: {{ framework }}</p>
</div>
</body>
</html>
上記のコードは、「HTMLで変数を直接使用したい:AngularJS」を出力します。中かっこを使用してAngularJS式を記述できます。例:{{式}}。
これが、ページの他の場所からアクセスする唯一の直接的な方法です。別のスクリプトタグを開いて印刷する。
InnerHTMLなどのメソッドを使用して、値をどこかに置くこともできます。
私はあなたがhtmlからjavascriptにアクセスできるとは思いませんが、あなたはjavascriptを通してdomオブジェクトのinnerhtmlを設定することができますので、あなたは逆に行きたいかもしれません。私が最初に見つけたgoogle searchは、その良い約束はできませんが、簡単なサンプルがあります。