Javascript字符串比较返回';未定义';在我的div容器中
我有下面的Javascript代码,其中我只是比较两个字符串值,并试图通过innerHTML命令在我的div容器中返回结果。但是,我的输出总是显示为“未定义” Javascript代码:Javascript字符串比较返回';未定义';在我的div容器中,javascript,html,Javascript,Html,我有下面的Javascript代码,其中我只是比较两个字符串值,并试图通过innerHTML命令在我的div容器中返回结果。但是,我的输出总是显示为“未定义” Javascript代码: function speak () { var lang = "fr"; var enlang = "en"; var n = lang.localeCompare(enlang); if (n == 0) { var message1 = "blah"; doc
function speak () {
var lang = "fr";
var enlang = "en";
var n = lang.localeCompare(enlang);
if (n == 0)
{
var message1 = "blah";
document.getElementById('percentage1').innerHTML= message1;
}
else
{
var message2 = "blah2";
document.getElementById('percentage1').innerHTML = message2;
}
}
HTML:
speak();
没有对您的函数进行调用
您可以尝试使用
或其他方法来调用它
还可以尝试将新的innerHTML值放入字符串引号中
<html>
<head>
<script type="text/javascript">
function speak() {
var lang = "fr";
var enlang = "en";
var n = lang.localeCompare(enlang);
if (n == 0)
{
var message1 = "blah";
document.getElementById('percentage1').innerHTML = "message1";
}
else
{
var message2 = "blah2";
document.getElementById('percentage1').innerHTML = "message2";
}
}
</script>
</head>
<body onload="speak()">
<div id="percentage1">blah blah blah</div>
</body>
</html>
函数speak(){
var lang=“fr”;
var enlang=“en”;
var n=lang.localeCompare(enlang);
如果(n==0)
{
var message1=“诸如此类”;
document.getElementById('percentage1').innerHTML=“message1”;
}
其他的
{
var message2=“blah2”;
document.getElementById('percentage1').innerHTML=“message2”;
}
}
废话废话
如果要在WINDOW LOAD中加载它,可以在JAVASCRIPT本身中编写该逻辑。
HTML
<div id="percentage1"><p></p></div>
如果要在
标记内打印,请使用此选项
window.onload = function speak() {
var lang = "fr";
var enlang = "en";
var n = lang.localeCompare(enlang);
if (n === 0)
{
var message1 = "blah";
document.getElementById('percentage1').firstChild.innerHTML = message1;
}
else
{
var message2 = "blah2";
document.getElementById('percentage1').firstChild.innerHTML = message2;
}
};
见此您确定这是重现您的问题的最简单示例吗?我用你的javascript写了这个,在页面上写了“blah2”:
<!DOCTYPE html>
<html>
<head>
<title>JS Test</title>
<script type="text/javascript">
function speak () {
var lang = "fr";
var enlang = "en";
var n = lang.localeCompare(enlang);
if (n == 0)
{
var message1 = "blah";
document.getElementById('percentage1').innerHTML= message1;
}
else
{
var message2 = "blah2";
document.getElementById('percentage1').innerHTML = message2;
}
}
</script>
</head>
<body onload="speak()">
Percentage1: <span id="percentage1"></span>
</body>
</html>
JS测试
函数speak(){
var lang=“fr”;
var enlang=“en”;
var n=lang.localeCompare(enlang);
如果(n==0)
{
var message1=“诸如此类”;
document.getElementById('percentage1')。innerHTML=message1;
}
其他的
{
var message2=“blah2”;
document.getElementById('percentage1')。innerHTML=message2;
}
}
百分比1:
我想你的问题出在别的地方。我实际上知道发生了什么。我的代码实际上是正确的,但当我通过Filezilla不断更新我的服务器时,它会提取原始代码,而不会正确地更新自身 我通过将更新后的.js文件保存到另一个名称来修复这个问题,效果很好
谢谢大家的支持,非常感谢 除此之外,在speak和括号之间有一个空格“()”我没有看到任何问题,对mecode来说很好,检查HTML是否包含ID为“percentage1”的元素!此代码是否在DOM中存在元素之前运行?不能在
元素上同时包含src
属性和
元素中的内容。您必须将它们分成两个
元素,以便其中一个包含src
,另一个包含代码内容。这可能是您的speak
函数未被调用的原因,因为内容不一定根据浏览器执行(并且不应该根据规范执行)。有关更多详细信息和链接,请参阅。
window.onload = function speak() {
var lang = "fr";
var enlang = "en";
var n = lang.localeCompare(enlang);
if (n === 0)
{
var message1 = "blah";
document.getElementById('percentage1').firstChild.innerHTML = message1;
}
else
{
var message2 = "blah2";
document.getElementById('percentage1').firstChild.innerHTML = message2;
}
};
<!DOCTYPE html>
<html>
<head>
<title>JS Test</title>
<script type="text/javascript">
function speak () {
var lang = "fr";
var enlang = "en";
var n = lang.localeCompare(enlang);
if (n == 0)
{
var message1 = "blah";
document.getElementById('percentage1').innerHTML= message1;
}
else
{
var message2 = "blah2";
document.getElementById('percentage1').innerHTML = message2;
}
}
</script>
</head>
<body onload="speak()">
Percentage1: <span id="percentage1"></span>
</body>
</html>