可以在纯HTML中使用JavaScript变量吗?

时间:2010-08-10 19:05:48

标签: javascript arrays variables

我的意思是,可以在<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>

...

7 个答案:

答案 0 :(得分:22)

有两种方法可以做到这一点。这是更好的一个:

<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>

答案 1 :(得分:5)

您可以这样做:

<script>
  var str = 'hello there';
  document.getElementById('para').innerHTML = str;
</script>

其中元素具有指定的id:

<p id="para"></p>

答案 2 :(得分:3)

你根本无法访问脚本标记之外的javascript变量,这是因为,

  1. Html无法识别任何仅提供支持的HTML元素的变量
  2. 变量用于存储临时变量,即动态数据,如果你想要更动态的东西,那么就可以使用PHP。

答案 3 :(得分:1)

不必要的冗长,但使用标准的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>

答案 4 :(得分:0)

这是您在页面中其他位置访问它的唯一直接方式。通过打开另一个脚本标签并打印它。

您还可以使用innerHTML等方法将值放在某处。

答案 5 :(得分:0)

我认为你不能从html访问javascript,但你可以通过javascript设置dom对象的innerhtml,所以你可能想要反过来。我找到的第一个谷歌搜索,所以我不能保证它的好,但它有一个快速的样本。

http://www.tizag.com/javascriptT/javascript-innerHTML.php

答案 6 :(得分:0)

你甚至可以使用AngularJS表达。

data = [['john','1','2', 2.45434],['jack','1.3','2.2', 4.45434], ['josh','2','3', 3.45434]]
data.sort(key=lambda x: x[-1])
# data = [['john', '1', '2', 2.45434], ['josh', '2', '3', 3.45434], ['jack', '1.3', '2.2', 4.45434]]

上面的代码将打印出来&#34;我想直接在HTML中使用变量:AngularJS&#34;。你可以使用大括号来编写AngularJS表达式。例如:{{表达}}。