使用JavaScript的可变冲突

时间:2013-03-06 13:13:02

标签: php javascript

我在javascript中遇到变量问题。我的情况是:

在PHP文件中我有:

<div class="fd_text" onmouseover="zobraz_text('pom','1','1')" onmouseout="zobraz_text('pom','1','0')">something in</div>

在JS文件中我有:

var pom1 = "Some text1";
var pom2 = "Some text2";

function zobraz_text(firma, cislo, udalost){
    obsah_text = firma+cislo; //this is wrong and why I wrote lower in text under this code

    document.getElementById("bloks").innerHTML = document.getElementById("bloks").innerHTML + obsah_text; //this ID is correct
}

obsah_text是变量,必须添加来自pom1pom2等的文字...
pom1pom2来自PHP文件中的mouseover的位置。

如果我将函数zobraz_text的前两个参数分组,我给了pom1,但这个pom1pom1不同,我有文字。在网络上,我有文字"pom1",但我必须有文字"Some text1"

当我删除变量obsah_text并且只是添加变量pom1时,我的代码就可以工作了,就像在这个示例代码中一样。

这显示了来自变量的文本,这是好的,但如果我添加变量,那么此代码仅适用于300种情况中的1种情况(因为我在函数zobraz_text()中有第一和第二参数)

document.getElementById("bloks").innerHTML = document.getElementById("bloks").innerHTML + pom1;

我相信你了解并帮助我。我希望对你们中的许多人来说很简单。

1 个答案:

答案 0 :(得分:3)

您无法创建变量变量。如果pom1pom2是全局的,您可能会window[firma + cislo],但我不建议这样做。

相反,使用一个对象来存储poms:

var poms = {
    "pom1": "Some text1",
    "pom2": "Some text2",
}
//snip
obsah_text = poms[firma + cislo];