看來有時object.setAttribute(attrib,value)不等於在javascript中的object.attrib = value?有時object.setAttribute(attrib,value)不等於javascript中的object.attrib = value?
我有下面的代碼,它工作正常:
var lastMonthBn = document.createElement('input');
lastMonthBn.value='<'; // This works fine
lastMonthBn.type='button'; // This works fine
但是,下面的代碼不會:
var div = document.createElement('div');
div.class = 'datepickerdropdown'; // No luck here!
,所以我需要使用以下命令:
div.setAttribute('class','datepickerdropdown');
我的問題是,爲什麼?從閱讀this,我認爲object.setAttribute(等值,值)是相同的object.blah =值??
非常感謝,這是有道理的。這種方式訪問屬性時,有什麼關鍵字和大寫字母有什麼參考? – Chris 2010-07-26 04:30:44
@Chris,只有少數幾個例外,其中暴露的屬性名稱與屬性名稱不匹配,例如可以通過'htmlFor'屬性訪問與'for'語句保留字衝突的'LABEL'元素的'for'屬性。對於其他屬性,例如由兩個單詞組成:'cellSpacing','colSpan','rowSpan','tabIndex','frameBorder'等。約定是使用「camelCase」,第一個字母小寫,然後是第一個字母以大寫字母開頭。請記住屬性名稱是*不區分大小寫*,但公開的屬性名稱不是。 – CMS 2010-07-26 04:49:34
+1,但我認爲IE對屬性和屬性所做的混亂以及通常因此更好地使用屬性可能會更突出。我認爲這是一個普遍的混淆領域,而jquery通過其不明確和誤導性的'attr()'方法對其自身的困惑加劇了。 – 2010-07-26 08:36:10