javascript - 元素的名称或ID

时间:2011-06-02 16:15:21

标签: javascript

this.form.sel2是否与document.getElementById('sel2')相似?

我的选择标签如下:

<select size=5 id="sub_player_ids" name="sub[player_ids][]">

当我在我的javascript代码中输入标记的名称,即sub[player_ids][]时,会出现语法错误。 我试图找到一个解决方法,以便不使用元素的名称,我想使用id。

但是使用document.getElementById('sub_player_ids')无效。

感谢您提供的任何建议。

请参阅下面的javascript代码:

      <input type="button" value="--&gt;"
       onclick="moveOptions(this.form.sel1, this.form.sel2);" /><br />
      <input type="button" value="&lt;--"
       onclick="moveOptions(this.form.sel2, this.form.sel1);" />

5 个答案:

答案 0 :(得分:3)

您元素的idsub_player_ids,而不是sel2。所以document.getElementById("sub_player_ids")会起作用。

您可能还会发现this.form["sub[player_ids][]"]可行。使用引用的表单可以使用不能以文字形式使用的内容。

需要注意的是,IE7及更早版本的getElementById版本已经破碎,可以找到使用给定字符串作为name的内容,而不是id,甚至如果页面上的某些内容实际上将其用作id。 (是的,真的; more here。)有些库会为你解决这个问题(例如jQuery)。实际上,谈到库,一个好的库实际上可以帮助解决各种浏览器的不一致问题,并提供许多方便的实用功能,让您专注于实际的业务问题。您可以考虑查看jQueryPrototypeYUIClosureany of several others

答案 1 :(得分:2)

您可以使用括号表示法:

this.form['sub[player_ids][]']

...或getElementById()正确 ID:

document.getElementById('sub_player_ids')

答案 2 :(得分:1)

使用document.getElementById('sub_player_ids')获取该元素。

答案 3 :(得分:1)

您的ID错误

document.getElementById('sub_player_ids')

答案 4 :(得分:1)

确认您的选项包含id,其中只包含name sel2