javascript - document.getElementById ("xxxxx").innerHTML 根本不起作用?

标签 javascript dom getelementbyid

我在尝试将字符串变量的值写入 DOM 中特定元素的特定 div 时遇到问题。

假设游戏=十

document.getElementById("game").innerHTML=game;

不写入:

<div id="game"></div>

问题是下面的代码我有一个脚本,在该脚本的末尾我可以 document.write(game) 并且它工作正常,但我无法将其写入 div?也许我试图做错事。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
<!--<form id="teamSelect"onsubmit="return function games();"><select>
    <option value="TEN">Tennessee</option>
    <option value="GB">Green Bay</option>
    </select>
    <input type="submit" name="Submit" />
    </form>
-->

<script>
var jsonString = '{"ss":[["Thu","7:30","Pregame",,"JAC",,"NE",,,,"55425",,"PRE1","2011"],' +
    '["Thu","7:30","Pregame",,"BAL",,"PHI",,,,"55424",,"PRE1","2011"],' +
    '["Thu","8:00","Pregame",,"SEA",,"SD",,,,"55423",,"PRE1","2011"],' +
    '["Thu","8:30","Pregame",,"DEN",,"DAL",,,,"55426",,"PRE1","2011"],' +
    '["Thu","10:00","Pregame",,"ARI",,"OAK",,,,"55427",,"PRE1","2011"],' +
    '["Fri","7:30","Pregame",,"MIA",,"ATL",,,,"55430",,"PRE1","2011"],' +
    '["Fri","7:30","Pregame",,"CIN",,"DET",,,,"55429",,"PRE1","2011"],' +
    '["Fri","7:30","Pregame",,"PIT",,"WAS",,,,"55431",,"PRE1","2011"],' +
    '["Fri","8:00","Pregame",,"TB",,"KC",,,,"55428",,"PRE1","2011"],' +
    '["Fri","8:00","Pregame",,"SF",,"NO",,,,"55432",,"PRE1","2011"],' +
    '["Sat","7:30","Pregame",,"GB",,"CLE",,,,"55433",,"PRE1","2011"],' +
    '["Sat","8:00","Pregame",,"NYG",,"CAR",,,,"55437",,"PRE1","2011"],' +
    '["Sat","8:00","Pregame",,"BUF",,"CHI",,,,"55434",,"PRE1","2011"],' +
    '["Sat","8:00","Pregame",,"IND",,"STL",,,,"55435",,"PRE1","2011"],' +
    '["Sat","8:00","Pregame",,"MIN",,"TEN",,,,"55436",,"PRE1","2011"],' +
    '["Mon","8:00","Pregame",,"NYJ",,"HOU",,,,"55438",,"PRE1","2011"]]}';

//var jsonString = '{"test": "test1"}';    

for (i=0; i<15;i++) {
    if ("TEN" == eval('(' + jsonString + ')').ss[i][6] || "TEN" == eval('(' + jsonString + ')').ss[i][4]) {
    var game=(eval('('+jsonString+')').ss[i][6] + ' vs ' + eval('('+jsonString+')').ss[i][4]);
    var day=(eval('('+jsonString+')').ss[i][0] + ' at ' + eval('('+jsonString+')').ss[i][1]);
    }
}
document.write(game);
document.getElementById("game").innerHTML=game;
</script>

<div id="game" style="font-family:Arial, Helvetica, sans-serif; font-size:12px; line-height:16px">hello</divЮ
</body>
</html>

最佳答案

当您执行脚本并查找该元素时,它还不存在,因为它稍后会出现。

准确地说,它还没有被解析并添加到 DOM 中。

因此,将脚本移至 HTML 文件的底部(至少在元素下方)。

如果您使用某种库,也可以轻松解决:例如,对于 jQuery,将所有内容都放在 $(function() { ... } block 中。这样,直到 DOM 完全加载后才会执行(此时您可以安全地搜索该元素)。

关于javascript - document.getElementById ("xxxxx").innerHTML 根本不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6891604/

相关文章:

javascript - 递归函数中的参数串联

html - CsQuery - 展开元素之间有空格字符

JavaScript 在 CRM 2011 字段中显示单词 "null",无值

javascript - PDF.JS - 检测页面何时呈现

javascript - 自动登录 HTML JS 因 getElementBy() 失败

javascript - getElementByID div 标签内的 PHP echo 语句

javascript - 使用 jQuery 格式化数组的更有效方法,无需添加 '-'

javascript - 如何从选择框中选择最大日期在Js中显示警报消息

javascript - 正则表达式不验证字符串结尾

javascript - 在输入中输入一个值“内部名称”?