2010-10-23 17 views
7

के बहुत प्रकार को बदलने के लिए जावास्क्रिप्ट का उपयोग करना मान लें कि मैं पृष्ठ पर सभी <img> टैग टैग्स को बदलना चाहता हूं। जावास्क्रिप्ट इस उद्देश्य के लिए इस्तेमाल किया जा सकता है?टैग

क्या वास्तविक टैग प्रकार बदलने का कोई तरीका है, या मुझे पहले <img> को हटाना होगा और फिर बनाना होगा, यदि हां, तो मैं कैसे सुनिश्चित कर सकता हूं कि नए टैग में पुराने टैग के समान कंटेनर है , आदि?

ऐसे प्रतिस्थापन करने के लिए सबसे सरल और ब्राउज़र अनुकूल तरीका क्या है?

उत्तर

4

हालांकि यह jQuery की तरह एक पुस्तकालय का उपयोग कर अधिक सुविधाजनक है, तो आप इसे इस तरह नहीं लाइब्रेरी (, तत्व की जगह प्रकार बदलने नहीं) के साथ कर सकते हैं:

उदाहरण:http://jsfiddle.net/BvSvb/

var imgs = document.getElementsByTagName('img'); 

var i = imgs.length; 
var parent; 
var iframe = document.createElement('iframe'); 
var currFrame; 

while(i--) { 
    currFrame = iframe.cloneNode(false); 
    currFrame.setAttribute('src', imgs[ i ].getAttribute('src')); 
    parent = imgs[ i ].parentNode; 
    parent.insertBefore(currFrame, imgs[ i ]); 
    parent.removeChild(imgs[ i ]); 
} 
0

आप टैग के प्रकार को नहीं बदल सकते हैं, आप उन्हें केवल अलग टैग के साथ बदल सकते हैं।

आप newElement.innerHTML = oldElement.innerHTML सेट करके सामग्री की प्रतिलिपि बना सकते हैं।

+1

ध्यान दें कि हालांकि 'आंतरिक HTML' व्यापक रूप से समर्थित है, यह वर्तमान में किसी भी W3C मानकों का हिस्सा नहीं है। यदि आप अधिकतम पोर्टेबल कार्यान्वयन करना चाहते हैं, तो 'आंतरिक HTML' वास्तव में टाला जाना चाहिए। – Tim

1

टैग नाम बदलने का कोई तरीका नहीं है।
आप एक नया तत्व बना सकते हैं और पुराने तत्व से गुणों को नए तत्व में असाइन कर सकते हैं, इसमें बच्चे नोड्स को स्थानांतरित कर सकते हैं और पुराने तत्व को नए तत्व के साथ प्रतिस्थापित कर सकते हैं।

3

मानक इंटरफेस का उपयोग करते हुए, डीओएम तत्व का प्रकार केवल उस तत्व को सेट किया जा सकता है जब वह तत्व बनाया जाता है। निकटतम है कि आप समझदारी से एक मानक तरीके से प्राप्त कर सकते हैं होगा:

  • आवश्यक प्रकार
  • प्रति नया एक
  • के प्रत्येक बच्चे के लिए पुराने तत्व से प्रत्येक विशेषता के एक नए तत्व बनाने वर्ष तत्व नया एक
  • का एक बच्चा होने के लिए आप ऐसा करना चाहते हैं, और ऐसा करने के लिए मदद की ज़रूरत है नया एक

साथ डोम पेड़ में पुराने तत्व की जगह, फिर पूछते हैं।

1

आप एचटीएमएल टैग नाम के प्रकार को नहीं बदल सकते हैं लेकिन आप उन्हें बदल सकते हैं। ऐसा करने का एक आसान तरीका jQuerys replacewith फ़ंक्शन के साथ है।