Javascript字符串比较返回';未定义';在我的div容器中

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

我有下面的Javascript代码,其中我只是比较两个字符串值,并试图通过innerHTML命令在我的div容器中返回结果。但是,我的输出总是显示为“未定义”

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