2013-02-21 242 views
0

这个脚本有什么问题?它重置自己,第二个div永远不会改变。我错过了什么?我想我可能需要一个更好的方法来处理变量,所以如果有人知道一个会很棒的。这是我的jsfiddle测试脚本:在jsfiddleIf-else JavaScript not working

+0

可能重复:http://stackoverflow.com/questions/13851399/javascript-if-statements-not-working – 2013-02-21 02:24:39

回答

4

你的功能是通过=做任务

var lang="de"; 

$('#en').click(function() { 
    lang="en"; 
}); 
$('#de').click(function() { 
    lang="de"; 
}); 
$('#es').click(function() { 
    lang="es"; 
}); 

function showtext() { 
    $('#text').text(lang); 
    if (lang="en") { 
     $('#cur').text(lang); 
    } 
    else if (lang="de") { 
     $('#cur').text(lang); 
    } 
    else if (lang="es") { 
     $('#cur').text(lang); 
    } 
} 

showtext(); 

setInterval(function() { 
    showtext(); 
}, 2000); 

演示,比较必须使用==

function showtext() { 
    $('#text').text(lang); 
    if (lang == "en") { 
     $('#cur').text(lang); 
    } 
    else if (lang == "de") { 
     $('#cur').text(lang); 
    } 
    else if (lang == "es") { 
     $('#cur').text(lang); 
    } 
} 

jsFiddle Working demo

+0

03,我现在感觉这么愚蠢,我应该看到,我一直在为我的大脑为什么不工作大声笑。感谢帮助我看到它! – Keleko 2013-02-21 02:27:57

+0

当然可以。它发生在我们所有人的某个点或另一个点上。 – Jesse 2013-02-21 02:31:51

0

你的比较实际上是分配如下尝试:

$('#text').text(lang); 
    if (lang=="en"){ 
     $('#cur').text(lang); 
    } 
    else if (lang=="de"){ 
     $('#cur').text(lang); 
    } 
    else if (lang=="es"){ 
     $('#cur').text(lang); 
    } 
0

你有一个if循环但这正是什么(它使用了错误的比较操作)。试试这个:

http://jsfiddle.net/Su3RC/158/

function showtext() { 
    $('#text').text(lang); 
    $('#cur').text(lang); 
} 
+0

我相信他想要学习/修复if语句,而不是优化他的代码片段。 – Jesse 2013-02-21 02:24:47

+0

够公平的。我不确定。 – isherwood 2013-02-21 02:25:51