2 回答

TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊
包括我自己在內(nèi)(其實(shí)我也就這兩天才知道這樣可以快速獲取的),很多jQuery的使用者都對(duì)這一問(wèn)題深感疑惑。為什么在眾多方便的各種獲取屬性和設(shè)置屬性的方法中就不能像DOM中一樣直接設(shè)置html元素的outerHTML呢? 原生DOM中獲取和設(shè)置html元素的outerHTML大家都很熟悉: // 原生DOM獲取outerHTML alert('原生DOM獲取outerHTML'); alert(document.getElementById('lz66303').outerHTML); // 原生DOM設(shè)置outerHTML alert('原生DOM設(shè)置outerHTML'); document.getElementById('lz66303').outerHTML = '<textarea id="lz66303"><hr>原生DOM設(shè)置outerHTML</textarea>'; 當(dāng)然在jQuery中我們可以用.prop()方法來(lái)獲取和設(shè)置html元素的outerHTML,在網(wǎng)上若搜索jQuery獲取outerHTML竟然還有人寫(xiě)出函數(shù)來(lái)了,可悲!——jQuery自帶的方法不知還自以為自己寫(xiě)個(gè)函數(shù)這種方法是什么好的解決方案。 當(dāng)你看到本文時(shí),請(qǐng)轉(zhuǎn)給更多還在用自定義函數(shù)獲取outerHTML的jQuery使用者——我這個(gè)經(jīng)驗(yàn)就沒(méi)白分享了! 其實(shí)就這么簡(jiǎn)單: // 成功獲取到 alert('jQuery.prop()獲取outerHTML'); alert($('textarea').prop('outerHTML')); // 成功設(shè)置,已生效 alert('jQuery.prop()設(shè)置outerHTML'); $('textarea').prop('outerHTML', '<input>');
添加回答
舉報(bào)