JavaScript代码不适用于IE8
我试图使链接工作,我们点击改变使用JavaScript的网站语言。以下是HTML代码:JavaScript代码不适用于IE8,javascript,Javascript,我试图使链接工作,我们点击改变使用JavaScript的网站语言。以下是HTML代码: '<form action="" method="post" name="currlang">'. '<input type="hidden" name="languageval" value="'.$session->value("language").'"/>'. '<a onclick="langa(this, \'en\');" class="lan
'<form action="" method="post" name="currlang">'.
'<input type="hidden" name="languageval" value="'.$session->value("language").'"/>'.
'<a onclick="langa(this, \'en\');" class="langs'.($session->value("language")=='en'?" active":"").'" id="en"></a>'.
'<a onclick="langa(this, \'it\');" class="langs'.($session->value("language")=='it'?" active":"").'" id="it"></a>'.
'<a onclick="langa(this, \'pl\');" class="langs'.($session->value("language")=='pl'?" active":"").'" id="pl"></a>'.
'</form>'.
该脚本在新浏览器(Firefoxe、Opera、Chrome、IE9)上运行良好,但在IE8上测试时出现错误:
“'document.getElementsByName(…).1'为空或不是对象”
经过一些研究,我发现IE8及以上版本不支持getElementsByName()
,可能解决方案是使用jQuery,这就是我需要帮助的地方。
使用jQuery或不使用jQuery时,我如何使其工作?以您希望的方式将名称切换为Id
<script type="text/javascript" language="javascript">
function langa (obj, valu){
$("#languageval").val(valu);
$("#currlang").submit();
}
</script>
功能语言(obj,valu){
$(“#languageval”).val(瓦卢);
$(“#currlang”).submit();
}
#将使用该Id提取元素,val()是元素值的get/set
编辑:将类型和语言标记添加到您可以尝试使用
ID
或类
来实现相同的目的,而不是名称
例如:
<div id="foo">This is id of foo</div>
<div class="choo">This is class of choo</div>
对于类
使用:
document.getElementsByClassName('choo');
我希望这有帮助 您只有一个名为
languageval
的输入,因此它的索引是[0]
,而不是[1]
。您可以始终在输入上放置ID并使用getElementById。确保ID是唯一的因为你在标记中指定了jquery,为什么你没有在代码中实际使用它?看看这可能不会正常工作,因为OP使用name
而不是ID
属性。他说他想使用jquery,所以我给了他jquery方法,但这就是为什么我说他需要在第一行把名字换成身份证的原因。谢谢你mikeswright49。我尝试了你的代码和页面刷新,但语言没有切换。这是一个Jquery实现。你包括Jquery吗?是的,我包括了Jquery v1.7.2谢谢你的帮助路径,但它比MikeWright49更有效,它只是刷新页面。你能发布更多代码吗?这是很难理解的,因为它只是一个很小的部分
document.getElementById('foo');
document.getElementsByClassName('choo');