2016-08-18 87 views
1

我不確定這是否是一個愚蠢的問題(我感覺downvotes),但我在網上搜索,一直沒有找到任何有用的信息。是否有可能輸出的東西不是在Javascript中的元素?

如果我想在頁面上顯示的東西,我可以使用:

document.getElementById("id").value="whatever"; 

是否有可能擺脫其元素在這裏,這樣我可以做類似的概念:

<html> 
    <body> 
     <script>write something here with javascript, no need for element?</script> 
    </body> 
</html> 

我知道這可以用類似方式實現:

function e(){ 
    return "whatever"; 
} 

但我試圖用this QRCode發生器,其中需要的ID。不過,我在動態生成一行c:forEach循環中的幾行QR代碼JSP,我無法弄清楚如何爲循環的每次迭代顯示QR代碼。

JSP方面:

<c:forEach items="item" var="${items"> 

    <!-- display QR code here with value from ${item.qr} --> 

</c:forEach> 

這是當我使用類似的結果:

<c:forEach items="item" var="${items}"> 

    <script> 
     new QRCode(document.getElementById("qrcode"), "${item.qr}"); 
    </script> 

    <div id="qrcode"></div> 

</c:forEach> 

結果:

enter image description here

做修正:

<c:forEach items="item" var="${items"> 

    <script> 
     var div = document.createElement("div"); 
     div.id = "${item.id}"; 
     new QRCode(document.getElementById("${item.id}"), "${item.qr}"); 
    </script> 

</c:forEach> 
+0

['document.write()'](https://developer.mozilla.org/en/docs/Web/API/document/write)?你也可以創建元素。 – yuriy636

+0

@ yuriy636可以使用'document.write()'來代替函數中可能需要元素的元素嗎? – px06

+0

腳本標記不是一個元素?無論如何,我不明白這個問題。你迭代成行,有一個id是什麼問題?你會在哪裏放置輸出? –

回答

1

您可以創建一個元素,它的文字是這樣的:在你的HTML代碼方面

var div = document.createElement("div"); 
div.id = "yourID"; 
var divText = document.createTextNode("Whatever"); 
div.appendChild(divText); 
document.body.appendChild(div); 

所以,這將是

<html> 
 
     <body> 
 
      <script> 
 
       var div = document.createElement("div"); 
 
       div.id = "yourID"; 
 
       var divText = document.createTextNode("Whatever"); 
 
       div.appendChild(divText); 
 
       document.body.appendChild(div); 
 
       div.addEventListener("click", function(el) { 
 
        alert("clicked the created element with id: " + el.target.id); 
 
       }, false); 
 
      </script> 
 
     </body> 
 
    </html>

+0

我認爲這可能是做這件事的最好方式,但是我怎樣才能用ID爲'createElement'來標識創建的div?我可以將ID分配給創建的div嗎? – px06

+0

我已經編輯了答案,以顯示@ px06 – baao

+0

解決了我的問題,使用你的創建元素的建議,沒有必要將它追加到身體,但它工作正常! – px06

0

嗯,你是在一個元素中:身體

var body = document.getElementsByTagName("body"); 
body[0].innerHTML += "<script> your code </script>"; 
相關問題