2012-12-13 82 views
2

以下代碼返回IE9中的類型不匹配錯誤。node.setAttribute('attName',null)返回類型不匹配

node.setAttribute('attributeName',null); 

node.setAttribute('attributeName',undefined) doesn't give an error. 

,這也是罰款:

node.setAttribute('attributeName','null'); 

任何想法,爲什麼這可能發生並且什麼解決的好方法。

一種解決方案是檢查,

if (attributeVal === null){ 
     attributeVal = 'null'; 
}, 
node.setAttribute('attributeName',attributeVal); 

有什麼建議?

+0

某些類型的節點不接受屬性。在設置'attributename'之前檢查類型 –

+1

請注意,['setAttribute']的第二個參數(http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-F68F082 )應該是一個字符串,而不是一個僞對象,這可能是你得到類型不匹配的原因。 – RobG

回答

0

如果您嘗試刪除屬性,請不要使用setAttribute(name, null),請使用removeAttribute(name)

我不知道你爲什麼要設置falsy值,我假設你要麼設置一些東西,要麼刪除屬性。因此類似於:

​​
+0

這是有道理的。問題在於服務器需要一個特定的屬性,並且在遵循此協議的其他客戶端上實現。 – sbr

相關問題