1

setAttribute を使用して select タグの名前を oldName から newName に変更しようとしましたが、ページを読み込んでソースを見ると、oldName のままです。最終的に、属性「onchange」、「function();」を追加したいと考えました。しかし、JSにタグの名前を変更させることさえできません。どんな助けでも大歓迎です。前もって感謝します。これを Mac OS X: Chrome、FF、および Safari でテストしました。

<html>
<head>
</head>
<body>
        <select name="oldName">
        <option value="0">Essay 1</option>
        <option value="1">Essay 2</option>
        <option value="2">Essay 3</option>
        </select>
<script type="text/javascript">
document.getElementsByTagName("select").item(0).setAttribute("name","newName");
</script>
</body>
</html>
4

3 に答える 3

4

コードが機能し、名前が変わります。ソースを表示するときに名前の変更が表示されないだけです。代わりに、開発ツールで生成されたソースを見てください。F12( Chromeで試してください)。

[ソースの表示] は、サーバーから最初にダウンロードされたソースのみを表示します。開発ツールを使用すると、ページの読み込み後に DOM に加えられた変更を確認できます。

于 2011-08-23T19:56:59.827 に答える
0

「ソースの表示」を行うと、目の前にあるページの HTML を見ているわけではありません。ブラウザは、特にソースを表示するためにページのコピーを取得します。この場合、javascript は解釈されません。そのため、javascript を使用して文書に加えた変更は、「ソースの表示」ウィンドウに反映されません。

DOM への変更をライブで表示するには、Firebug (リンク)などの開発ツールを使用する必要があります。もちろん、Firefox の拡張機能であることは、Internet Explorer ではうまくいかないことを意味します。そのため、開発者はしばしば開発のために Firefox をターゲットにし、すべてが適切に稼働した後で Internet Explorer について心配します。

IE には Firebug 用の代替ツール (Firebug Lite など) がありますが、機能とユーティリティに近いものはありません。

于 2011-08-23T19:58:46.560 に答える
-3

代わりにクラスを使用しないのはなぜですか?このような:

<script type="text/javascript">
$(function(){
    $('.example').attr('name','new');
});
</script>


<select class="example" name="oldName">
<option value="0">Essay 1</option>
<option value="1">Essay 2</option>
<option value="2">Essay 3</option>
</select>
于 2011-08-23T19:56:30.350 に答える