1

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();
}

スクリプトは新しいブラウザ(Firefox、Opera、Chrome、IE9)で正常に動作しますが、IE8でテストすると、エラーが発生します。

「'document.getElementsByName(...)。1'がnullであるか、オブジェクトではありません」。

getElementsByName()いくつかの調査の結果、IE8以降ではサポートされていないことがわかりました。おそらく、解決策はjQueryを使用することであり、これが私が助けを必要としているところです。これをjQueryを使用して、または使用せずに機能させるにはどうすればよいですか?

4

2 に答える 2

1

IDの代わりにまたはを使用しclassて、同じ目的を達成することができます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');

これが役立つことを願っています!

于 2012-10-25T12:55:14.373 に答える
-1

これを希望どおりに機能させるには、name を Id に切り替えます。

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

# はその ID を持つ要素をプルし、val() は要素の値の取得/設定です。

編集: type タグと language タグを追加しました

于 2012-10-25T12:52:59.893 に答える