2010-08-10 27 views
9

Demek istediğim, <script> -tags dışında HTML'de bildirilen ve başlatılan bir değişken/dizi olabilir mi? Fx.Bir JavaScript değişkeni düz HTML'de kullanılabilir mi?

<script type="text/javascript"> 
var foo = array('placeholder1', 'placeholder2'); 
</script> 

<body> 
<p><!--access the variable here-->foo[0]</p> 
</body> 

Bu durumda değişken/diziye nasıl erişirsiniz? bunun gibi:

<p><script type="text/javascript">document.print(foo[0])</script></p> 

??

cevap

15

Bunu yapmanın iki yolu. Bu iyi biridir:

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

Yoksa bunu (Marcel işaret ettiği gibi, XHTML çalışmaz ve gerçekten zaten kullanılmamalıdır) bu şekilde yapabilirsiniz:

<p><script type="text/javascript">document.write(foo)</script></p> 
+0

'document.write' XHTML'de çalışmıyor: http://www.w3.org/MarkUp/2004/xhtml-faq#docwrite –

+0

Bu, bir JavaScript değişkeninin içereceği bir HTML etiketinin ayarlanmasına iyi bir örnektir. içeriği. Ancak, HTML'de bir JavaScript değişkeninin içeriğini otomatik olarak döndüren bir JavaScript değişkeni belirtmenize izin vermez. Doğru cevap, sorulan şeyin yapılamamasıdır, ancak burada alternatif bir yaklaşımdır. –

3

<p id="para"></p> 
: bir öğe belirtilen kimliğvar

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

:

böyle bir şey yapabiliriz

0

Bu, sayfanızda başka yerlere erişebilmenizin tek yoludur. Başka bir script etiketi açıp basarak.

Değeri bir yere koymak için innerHTML gibi yöntemleri de kullanabilirsiniz.

0

Javascript'e html'den erişebileceğinizi sanmıyorum ancak javascript aracılığıyla bir dom nesnesinin innerhtml değerini ayarlayabilirsiniz, böylece başka bir yere gitmek isteyebilirsiniz. İlk google araması bulduğum için iyi olacağına söz veremem ama hızlı bir örneği var.

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

3

sadece öyle, komut etiketinin JavaScript değişken dışında erişemez, çünkü

    Html sadece
  1. değişkenler kullanılır desteklenmeyen HTML öğelerine vermektedir herhangi bir değişkeni tanımıyor
  2. Geçici değişkenleri, yani dinamik veriler için saklamak, daha dinamik bir şey istiyorsanız, bunun için PHP'yi kullanabilirsiniz.
1

Gereksiz olarak ayrıntılı, ancak standart DOM yöntemleri kullanılarak.

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

AngularJS ifadesini bile siz yapabilirsiniz. .Sen angularjs ifadeyi yazmak için parantez kullanabilirsiniz:

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

Yukarıdaki kod "angularjs kullanıyorum HTML doğrudan değişkenleri kullanmak istiyorum" basar. Örneğin: {{expression}}.

İlgili konular