3 回答

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個贊
如果你想要完全兼容,看起來容易的事實(shí)上是很棘手的。
var e = document.createElement('div');
假設(shè)您要添加“div1”的ID。
e['id'] = 'div1';e.id = 'div1';e.attributes['id'] = 'div1';e.createAttribute('id','div1')
這些都將工作,除了IE 5.5中的最后一個(這是古代歷史,但仍然是XP的默認(rèn),沒有更新)。
但當(dāng)然還有突發(fā)事件。在8之前的IE中不會工作:e.attributes['style']
不會出錯而是實(shí)際上不會設(shè)置類,它必須是className : e['class']
.
但是,如果你正在使用屬性,那么這將工作:e.attributes['class']
總之,將屬性視為文字和面向?qū)ο蟆?/p>
在字面上,你只是希望它吐出x ='y'而不考慮它。這是屬性,setAttribute,createAttribute的用途(IE的樣式異常除外)。但因?yàn)檫@些都是對象,所以事情可能會變得混亂。
因?yàn)槟阋_地創(chuàng)建一個DOM元素而不是jQuery innerHTML slop,我會把它視為一個并堅(jiān)持使用e.className ='fooClass'和e.id ='fooID'。這是一個設(shè)計(jì)偏好,但在這種情況下,嘗試對待除了對象之外的其他任何東西。
它永遠(yuǎn)不會像其他方法那樣適得其反,只要知道class是className而style是一個對象,所以它的style.width not style =“width:50px”。還要記住tagName,但這已經(jīng)由createElement設(shè)置,所以你不必?fù)?dān)心它。
這比我想要的要長,但JS中的CSS操作是棘手的事情。

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個贊
強(qiáng)制性的jQuery解決方案。查找并設(shè)置title
屬性foo
。請注意,這選擇了一個單元素,因?yàn)槲沂峭ㄟ^id進(jìn)行的,但您可以通過更改選擇器輕松地在集合上設(shè)置相同的屬性。
$('#element').attr( 'title', 'foo' );
添加回答
舉報(bào)