在同一按钮上切换Javascript语言
我有这部分代码: JS: HTML:在同一按钮上切换Javascript语言,javascript,Javascript,我有这部分代码: JS: HTML: 其他语言 “单击我”按钮工作,并将“默认语言”切换为“其他语言”,但在初次单击后消失。我希望能够在同一个按钮上来回切换语言,但我只能添加另一个按钮。帮助?问题是您替换了整个内部HTML,即p标记的全部内容,包括按钮 您需要将要替换的内容放在子元素中,例如span: <p> <span id='lang'>some other language</span> <input type='text'
其他语言
“单击我”按钮工作,并将“默认语言”切换为“其他语言”,但在初次单击后消失。我希望能够在同一个按钮上来回切换语言,但我只能添加另一个按钮。帮助?问题是您替换了整个内部HTML,即
p
标记的全部内容,包括按钮
您需要将要替换的内容放在子元素中,例如span:
<p>
<span id='lang'>some other language</span>
<input type='text' style="font-size: 12px;" onclick='changeText()' value='click me'/>
</p>
其他语言
您现在可以安全地替换span的内容,因为其中没有其他需要的HTML标记
您可以通过使用额外的JavaScript实现同样的效果,但更改标记可能是最简单、最清晰的解决方案
提示:将单击处理程序放入
onclick
属性被认为是错误的编码样式。()它会消失,因为您的输入位于中。
您需要从p
中获取输入
<p id='lang'> some other language</p>
<input type='text' style="font-size: 12px;" onclick='changeText()' value='click me'/>
其他语言
另一件事:为什么要使用输入类型文本来完成按钮的工作?因为
在
中,所以当您用新值替换innerHTML时,它也会被覆盖
中的一些其他语言仍然是一个节点,因此您可以使用p.childNodes[0]
拾取它,然后将其节点值更改为新值。这不会影响现在的输入
如果你想切换文本,你必须包含在语言之间切换的逻辑
函数changeText()
{
var p=document.getElementById('lang');
var langList=['some other language','default language'];
//获取当前索引
var idx=p.dataset.lang;
idx=idx==null?0:parseInt(idx,10);
//切换到下一种语言
idx=(idx+1)%langList.length;
p、 dataset.lang=idx;
p、 childNodes[0]。nodeValue=langList[idx];
}
其他一些语言
Mkaaay,但它没有切换回默认语言?@Greedy添加了如何操作。也没有切换回默认语言?@Greedy抱歉?我不明白你的意思?我需要同样的按钮切换回默认文本,现在它不会消失,但我无法切换回原始文本(语言)要切换到默认语言,您应该声明两个字符串变量:lang1和lang2,然后单击onclick if innerHTML==lang1切换到lang2,反之亦然versa@Greedy如果你尝试一下,你自己就能弄明白。编程时不要让愚蠢的堆栈溢出用户代码
<p>
<span id='lang'>some other language</span>
<input type='text' style="font-size: 12px;" onclick='changeText()' value='click me'/>
</p>
<p id='lang'> some other language</p>
<input type='text' style="font-size: 12px;" onclick='changeText()' value='click me'/>