簡體   English   中英

為什么不能將Javascript對象分配給DOM元素?

[英]Why can't I assign a Javascript object to a DOM element?

這是我的代碼:

<input id="input_with_id" type="text" value="hello" disabled>
<script type="text/javascript">
     input_with_id = {type:"checkbox", value:"bye", disabled:false}
</script>

IE 8向我顯示此錯誤消息:“此對象不管理此屬性或方法”。 但是,如果我使用此代碼,它的工作方式應為:

<script type="text/javascript">
     var my_var = new Object();
     my_var = {a:"x", b:"y", c:"z"}
</script>

這兩個代碼之間的唯一區別在於,我試圖將DOM元素重新分配給與DOM元素具有相同結構的Javascript對象,而在另一個代碼中,我將Javascript對象重新分配給另一個Javascript對象。 盡管在正常情況下DOM元素的工作原理相似,但為什么不能在這里將DOM元素視為Javascript對象呢?

var my_var = new Object(); my_var = {...}; 也不完全是“正常”的。 您正在創建一個全新的對象,並丟棄使用new Object創建的第一個new Object

IE8只是不喜歡您“扔掉” DOM元素。

簡而言之,您收到一條錯誤消息是因為您做錯了。

不建議嘗試使用“自動全局”(通過元素的ID或名稱引用元素)。 (處理命名沖突是一個痛點)

此外,尤其是IE8(及更低版本)不允許您動態更改typename (IE7-)屬性(它們被視為只讀)

就您而言,如果您想操縱該字段,只需使用常規JavaScript(或您最喜歡的JS庫)

例如

<script>
  var myElem = document.getElementbyId('input_with_id');
  myElem.type = 'checkbox';
  myElem.value = 'bye';
  myElem.disabled = false;
</script>

(請記住,由於type屬性為只讀,因此在IE8中仍然無法使用- (在IE9中已修復(在標准模式下運行時))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM