为什么可以';我是否将Javascript对象分配给DOM元素?
这是我的代码:为什么可以';我是否将Javascript对象分配给DOM元素?,javascript,html,object,dom,Javascript,Html,Object,Dom,这是我的代码: <input id="input_with_id" type="text" value="hello" disabled> <script type="text/javascript"> input_with_id = {type:"checkbox", value:"bye", disabled:false} </script> 输入_,_id={type:“checkbox”,value:“bye”,disabled:fals
<input id="input_with_id" type="text" value="hello" disabled>
<script type="text/javascript">
input_with_id = {type:"checkbox", value:"bye", disabled:false}
</script>
输入_,_id={type:“checkbox”,value:“bye”,disabled:false}
IE 8向我显示此错误消息:“此对象不管理此属性或此方法”。但是如果我使用这个代码,它的工作原理应该是:
<script type="text/javascript">
var my_var = new Object();
my_var = {a:"x", b:"y", c:"z"}
</script>
var my_var=新对象();
my_var={a:x,b:y,c:z}
这两个代码之间的唯一区别是,在另一个代码中,我试图将一个DOM元素重新分配给一个与DOM元素具有相同结构的Javascript对象,而在另一个代码中,我将一个Javascript对象重新分配给另一个Javascript对象。尽管DOM元素通常工作方式类似,但为什么不能将其视为Javascript对象呢?
var my_var=new object();我的_var={…}代码>也不完全“正常”。您正在创建一个全新的对象,并丢弃使用新建对象创建的第一个对象
IE8只是不喜欢你“扔掉”DOM元素
简单地说,您会收到一条错误消息,因为您做得不对。不建议尝试使用“自动全局”(通过元素的ID或名称引用元素)。(处理命名冲突是一个难点)
此外,IE8(及以下版本)尤其不允许您动态更改类型
或名称
(IE7-)属性(它们被视为只读)
在您的情况下,如果您想操作该字段,只需使用常规JavaScript(或您最喜欢的JS库)
e、 g
var myElem=document.getElementbyId('input_with_id');
myElem.type='checkbox';
myElem.value='bye';
myElem.disabled=false;
(请记住,由于type属性是只读的(在IE9中(在标准模式下运行时)已修复),这在IE8中仍然不起作用)您尝试使用的方法可能重复?JS对象本身没有DOM对应物。也许您忽略了一些插件的附加信息,这些插件可能用于从JS对象创建DOM元素?无论如何,您缺少了一个var
语句,这可能会导致IE出现问题。是的,每个my\u var=
都会覆盖my\u var
,type
属性只有在元素已附加到文档时才是只读的。在将元素添加到页面之前,您可以自由设置。键入。@NiettheDarkAbsol correct。。。在这种情况下,元素被添加到DOM中(或者我只能假设它是),因此在IE8中它将是只读的-(
<script>
var myElem = document.getElementbyId('input_with_id');
myElem.type = 'checkbox';
myElem.value = 'bye';
myElem.disabled = false;
</script>