我要做的是加载页面,将PHP变量导入JavaScript,并将我的元素(Link)设置为所述变量。然后,当您点击链接时,我希望它从打开或关闭更改为关闭或打开。出于某种原因,我所看到的其他解决方案似乎并不奏效。以下代码似乎有什么问题?我有点困惑,为什么这不起作用。
<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 :(得分: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>
代码
答案 1 :(得分: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>
答案 2 :(得分:0)
尝试在document.getElementById('open').innerText= state;
window.onload
window.onload=function(){
document.getElementById('open').innerText= state;
}
当您尝试设置文本属性时,问题可能是dom未就绪(页面未完全加载)
答案 3 :(得分:0)
试试这个:<a id="button_id" onclick="toggleText('open')" href="#">open</a>
并将脚本放在结束</body>
标记之前。