JavaScript代码不适用于IE8

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

我试图使链接工作,我们点击改变使用JavaScript的网站语言。以下是HTML代码:

'<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');