为什么可以';我是否将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>