我想制作一個網站,其中用'{{'和'}}'撰寫的變數名應該獲得變數的值。例如
<body>
hi its is {{ a }}
<script>
var a = me;
</script>
</body>
輸出應該是 hi 它是計算機
這是我的代碼。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
hey it is {{ data[0] }}. how are you. I am {{ data[1] }} years old.
<script>
var data = ["computer",'2000'];
//the script
var doc = document.body.innerHTML;
let length = doc.split('{{').length-4;
for(let i=1;i<=length;i ){
let dos = doc.slice(doc.search('{{') 2,doc.search('}}'));
eval(`sp = ${dos}`);
document.body.innerHTML = doc.replace(dos,sp).replace('{{','').replace('}}','');
var sp = '';
}
//the end of script
</script>
</body>
</html>
上面代碼的輸出是:嘿,它是計算機。你好嗎。我 {{ data[1] }} 歲。一旦訪問這個jsfiddle。這是我的代碼。https://jsfiddle.net/3ocmkwq2/
謝謝
uj5u.com熱心網友回復:
這條線
document.body.innerHTML = doc.replace...
更新document.body.innerHTML,但不更新doc變數,因此在進行任何替換之前保持不變。
所以下一個回圈, doc 仍然是原始的,所以得到的拼接{{ }}重新得到data[0].
要修復,doc=請在更改后更新.innerHTML
var data = ["computer", '2000'];
//the script
var doc = document.body.innerHTML;
let length = doc.split('{{').length - 4;
for (let i = 1; i <= length; i ) {
let dos = doc.slice(doc.search('{{') 2, doc.search('}}'));
console.log(dos)
eval(`sp = ${dos}`);
document.body.innerHTML = doc.replace(dos, sp).replace('{{', '').replace('}}', '');
// update the doc variable
doc = document.body.innerHTML;
var sp = '';
}
hey it is {{ data[0] }}. how are you. I am {{ data[1] }} years old.
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/478546.html
標籤:javascript
