我有一个包含类似
的html文件> <label id="remem" for"remem"><input type"checkbox"
> name="remem"/>Test</label>
现在我正在处理i18n并正在翻译这些单词。我需要做的是将Test一词翻译成另一种语言。
如何以编程方式更改标签(在我的示例中为“Test”)?我应该处理什么属性?
谢谢!
答案 0 :(得分:1)
使用<span>
id
标记内添加文字
> <label id="remem" for"remem"><input type"checkbox"
> name="remem"/><span id="rememText">Test</span></label>
然后你可以使用javascript来操作文本。
document.getElementById("rememText").innerHTML = "another language";
答案 1 :(得分:1)
@ SajithNair的答案肯定有效,对于小项目来说,这是非常可行的。
但是,对于大型项目,您可能会发现需要更有条理的东西。
让服务器端代码处理它。
根据您的服务器端框架,这可能是最佳解决方案。
让客户端框架处理它。
如果您使用Knockout
之类的东西,使用正确的绑定装饰标签并让Knockout魔法发生是一件简单的事情。
<label for="myfield">
<span data-bind="html: resources.myFieldLabelText"></span>
<input id="myfield" name="myfield">
</label>
如果您没有使用Knockout,或者您决定使所有资源都可观察到太多,那么使用数据属性然后以这种方式交换文本就可以了。
<label for="myfield">
<span data-label-resource="myfieldResourceKey"></span>
<input id="myfield" name="myfield">
</label>
jQuery / sizzle有一个很好的引擎来处理data-*
找到的东西,否则你可以回到querySelectorAll
。如果失败并且您支持ANCIENT浏览器,您可以使用DOM。
使用像这样的资源键而不是基于每个字段进行临时处理的优点是,如果您重新使用值(例如,条目或显示,或者您在多个页面上使用它) )你只有一个需要翻译的资源,而不是多个实例。
答案 2 :(得分:0)
试试这个
<span id="rememText">Test</span>
$("#rememText").innerHtml("string text");
或
<span id="rememText">Test</span>
$("#rememText").val("string text");