2011-08-05 16 views
5

मैं यह कर सकता:आंतरिक HTML की बजाय पूरे तत्व को बदलें?

$('my-panel').innerHTML = '<p> New content </p>'; 

लेकिन अगर मैं किसी भी तरह नहीं मिल सकता है की तरह

$('my-panel').wholeHTML = "<div id='my-panel'><p> New Content</p></div>"; 

कुछ करने का किसी भी तरह से। अगर मैं ऐसा कुछ नहीं कर सकता, तो मुझे सामानों का एक पूरा समूह दोबारा करना होगा, जो समय लेने वाला होगा।

उत्तर

6

क्या outerHTML है, जो 'पूरा' टैग शामिल के बारे में:

$('my-panel').outerHTML = '<p> New content </p>'; 

http://jsfiddle.net/pimvdb/Sah2U/1/

+0

हू, जो काम करता था। मुझे वास्तव में कोशिश करनी चाहिए, धन्यवाद। क्या इस सामान के लिए कहीं कोई एपीआई लिस्टिंग है? जिस पृष्ठ पर मैं देख रहा था वह बाहरी HTML का कोई संदर्भ नहीं देता है। – Oliver

+0

@ ओलिवर: मुझे इसके बारे में एमडीएन (अजीब) पर नहीं मिल रहा है लेकिन एमएसडीएन का एक अच्छा संदर्भ है: http://msdn.microsoft.com/en-us/library/ms534310(v=vs.85).aspx। – pimvdb

+0

ओच, बस थोड़ा सा दिख रहा है, स्पष्ट रूप से .उटरएचटीएमएल गैर-मानक है और कुछ ब्राउज़रों पर काम नहीं करता है। – Oliver

1

आप हमेशा उन टैग parentNode हो और उसकी innerHTML

  $('my-panel').parentNode.innerHTML = '<p> New Content</p>' 
+2

यह महान काम करेगा, सिवाय इसके कि माता-पिता तत्व के अधिक बच्चे हैं, इस मामले में वे नष्ट हो जाते हैं। – pimvdb

+0

यह बदलने के पहले कोड यह कर रहा था। मूल लेखक को केवल उस उद्देश्य के लिए एक अतिरिक्त div पेश करके समस्या के आसपास मिल गया, लेकिन मुझे इस तरह की चीजें करने से नफरत है। – Oliver

2

आप mootools का उपयोग जगह ले सकता है, सही? आप आसानी से तत्व को प्रतिस्थापित कर सकते हैं, यानी

Elements.from("<div id='my-panel'><p> New Content</p></div>").replaces($("my-panel")); 
+0

ओह, यह आसान है। मैं भविष्य में ऐसा करूँगा। – Oliver

+0

और यह क्रॉस ब्राउज़र है :) – stecb

संबंधित मुद्दे