2014-08-31 107 views
0

我想要做的是加载一个页面,获取一个PHP变量到JavaScript中,并将我的元素(链接)设置为所述变量。然后,当您点击链接时,我希望它从打开或关闭更改为关闭或打开。出于某种原因,我所看到的其他解决方案似乎并不奏效。下面的代码似乎是什么问题?我有点困惑,为什么这不起作用。在JavaScript中设置一个链接名称,用PHP变量

<script type="text/javascript"> 
var state = "<?php echo $var; ?>"; 
document.getElementById('open').text = state; 
function toggleText(button_id) 
{ 
    if (document.getElementById('button_id').text == "Open") 
    { 
     document.getElementById('button_id').text = "Close"; 
    } 
    else 
    { 
    document.getElementById('button_id').text = "Open"; 
    } 
} 
</script> 
<a id="open" onclick="toggleText('open')" href="#"></a> 

非常感谢,这是我项目的最后一站,出于某种原因,无论我尝试什么都不会使它工作。

说明: 我也试过,而不是.text.innerHTML它也没有工作。

+0

你的脚本运行前的DOM准备好,无论是使用onload事件或使脚本在身体的末端。根据@patrickevans的建议,它的'innerText','innerHTML'或'textContent'不是'text' – 2014-08-31 23:40:20

回答

1
<script type="text/javascript"> 
document.getElementById('buttonid').innerHTML = "<?php echo $var; ?>"; 
function toggleText(button) 
{ 
    if (button.innerHTML == "Open") 
    { 
     button.innerHTML = "Close"; 
    } 
    else 
    { 
    button.innerHTML = "Open"; 
    } 
} 
</script> 
<a id="buttonid" onclick="toggleText(this)" href="#"></a> 

认沽后脚本</body>标签

0

试穿window.onload

window.onload=function(){ 
    document.getElementById('open').innerText= state; 
} 

调用document.getElementById('open').innerText= state;问题可能是的DOM还没有准备好(该页面未满载)当您尝试设置文本属性

+0

已更改为'innerText' – andrew 2014-08-31 23:42:59

0

试试这个:<a id="button_id" onclick="toggleText('open')" href="#">open</a> 而就在之前的CL把脚本添加</body>标记。

1

你检查了控制台吗?它始终是开始的地方。

问题的一部分是,你有单引号button_id。我假设button_id是一个变量名,不应该用引号引起来。此外,您应该使用innerHTML而不是text

这应该工作:

<script type=.innerHTML/javascript"> 
var state = "<?php echo $var; ?>"; 
document.getElementById('open').innerHTML = state; 
function toggleText(button_id) 
{ 
    if (document.getElementById(button_id).innerHTML == "Open") 
    { 
     document.getElementById(button_id).innerHTML = "Close"; 
    } 
    else 
    { 
    document.getElementById(button_id).innerHTML = "Open"; 
    } 
} 
</script> 
<a id="open" onclick="toggleText('open')" href="#"></a>