JavaScript代码无法运行IE8

时间:2012-10-25 12:48:39

标签: javascript

我正在努力使链接工作,我们点击以使用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>'.

这里是javascript:

function langa(obj, valu) {
    document.getElementsByName("languageval")[1].value=valu;
    document.getElementsByName('currlang')[1].submit();
}

该脚本在新浏览器(Firefoxe,Opera,Chrome,IE9)上运行良好,但在IE8上测试时会出错:

  

“'document.getElementsByName(...)。1'为null或不是对象”。

经过一些研究后,我发现IE8及以上版本不支持getElementsByName(),也许解决方案是使用jQuery,这是我需要帮助的地方。 如何使用jQuery或不使用它?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用IDclass来实现相同目的,而不是name

示例:

<div id="foo">This is id of foo</div>
<div class="choo">This is class of choo</div>

然后,如果您使用ID,请使用:

document.getElementById('foo');

并使用class

document.getElementsByClassName('choo');

我希望这有帮助!

答案 1 :(得分:-1)

为此以您希望切换名称为Id的方式工作。

<script type="text/javascript" language="javascript">
   function langa (obj, valu){
      $("#languageval").val(valu);
      $("#currlang").submit();
   }
</script>

#将使用该Id拉取元素,val()是元素值的get / set。

编辑:将类型和语言标签添加到