[英]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(及更低版本)不允許您動態更改type
或name
(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.