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="-->"
onclick="moveOptions(this.form.sel1, this.form.sel2);" /><br />
<input type="button" value="<--"
onclick="moveOptions(this.form.sel2, this.form.sel1);" />
答案 0 :(得分:3)
您元素的id
为sub_player_ids
,而不是sel2
。所以document.getElementById("sub_player_ids")
会起作用。
您可能还会发现this.form["sub[player_ids][]"]
可行。使用引用的表单可以使用不能以文字形式使用的内容。
需要注意的是,IE7及更早版本的getElementById
版本已经破碎,可以找到使用给定字符串作为name
的内容,而不是id
,甚至如果页面上的某些内容实际上将其用作id
。 (是的,真的; more here。)有些库会为你解决这个问题(例如jQuery)。实际上,谈到库,一个好的库实际上可以帮助解决各种浏览器的不一致问题,并提供许多方便的实用功能,让您专注于实际的业务问题。您可以考虑查看jQuery,Prototype,YUI,Closure或any 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