2010-08-29 19 views
10

के साथ से सभी विशेषताओं को कैसे हटाएं js या jquery से सभी विशेषताओं को कैसे निकालें। (मुझे नहीं पता कि शरीर में गुण क्या हैं, मैं उन्हें सभी को हटाना चाहता हूं)जेएस या jquery

+2

ऐसा करके आपका अंतिम लक्ष्य क्या है? –

+1

@meder: मैं केवल यह मान सकता हूं कि वह उस पृष्ठ के आउटपुट को नियंत्रित नहीं कर सकता है जिसे वह नियंत्रित कर रहा है। –

+0

कुछ हद तक संबंधित http://stackoverflow.com/questions/2048720/get-all-attributes-from-a-html-element-with-javascript-jquery – BrunoLM

उत्तर

19

आप सूची के रूप में गुणों तक पहुंचने के लिए डोम लेवल 1 कोर attributes प्रॉपर्टी का उपयोग कर सकते हैं।

function removeAllAttrs(element) { 
    for (var i= element.attributes.length; i-->0;) 
     element.removeAttributeNode(element.attributes[i]); 
} 
removeAllAttrs(document.body); 

या jQuery प्लगइन कपड़ों में कपड़े पहने: सादा जे एस के रूप में

$.fn.removeAllAttrs= function() { 
    return this.each(function() { 
     $.each(this.attributes, function() { 
      this.ownerElement.removeAttributeNode(this); 
     }); 
    }); 
}; 

$('body').removeAllAttrs(); 
+0

यही मुझे चाहिए। बहुत बहुत धन्यवाद। – faressoft

+1

+1 महान समाधान। आपको जवाब @faressoft – Marko

+0

स्वीकार करना चाहिए क्या यह आईई में काम करता है? IE 'विशेषताओं' में सभी संभावित विशेषता नाम शामिल हैं, भले ही वे सेट किए गए हों या नहीं, और मुझे आश्चर्य हुआ कि क्या इससे समस्याएं पैदा हो सकती हैं। अभी तक इसका परीक्षण नहीं किया है। –

0
var $newBody = $('<body>'); 
$newBody.append($('body').contents()); 
$('body').replaceWith($newBody); 

कुछ इस तरह काम कर सकते हैं।

+3

'बॉडी' को बदलने से किसी भी जावास्क्रिप्ट/jQuery संदर्भों को इंगित करने का दुष्प्रभाव होता है, हालांकि इसमें किसी भी ईवेंट हैंडलर शामिल हैं। – bobince

+0

ऑनक्लिक, आदि एक्सएचटीएमएल व्यूपॉइंट से विशेषताएं हैं। इसके अलावा, यह सुनिश्चित करने के लिए तुच्छ है कि यह किसी भी अन्य jQuery घटना बाध्यकारी से पहले चलता है। –

0

अगर यह सबसे अच्छा तरीका है मैं नहीं जानता, लेकिन यह

$('body').each(function(){ 
    var $body = $(this); 
    var attributes = $.makeArray(this.attributes); 

    $.each(attributes, function(indexInArray, valueOfElement) { 
     $body.removeAttr(valueOfElement.name); 
    }); 
}); 
+0

क्या "प्रत्येक" वास्तव में यहां आवश्यक है? –

2

काम करता है यह मानते हुए कि आप, आप की तरह

$(element).removeAttr($.makeArray(element.attributes) 
         .map(function(item){ return item.name;}) 
         .join(' ')); 

नोट कुछ का उपयोग कर सकते element के लिए गुण निकालना चाहते हैं कि यह केवल jQuery 1.7+

0

ES2015 के रूप में काम करेगा, आप Array.from() का उपयोग कर सकते हैं।

const el = document.body; 
const attributes = Array.from(el.attributes); 
attributes.forEach(attr => el.removeAttributeNode(attr)); 
संबंधित मुद्दे