2011-02-09 10 views
9

जावास्क्रिप्ट में, संभवतः jQuery का उपयोग करके, मैं कैसे पता लगा सकता हूं कि किसी दिए गए तत्व की HTML सामग्री बदल गई है या नहीं?jQuery: अगर मैं किसी दिए गए तत्व में HTML बदल गया है तो मैं कैसे पता लगा सकता हूं?

$('#myDiv').change(function(){ 
    // do some stuff 
}); 

मैं मूल रूप से अगर दिए गए तत्वों (दिए गए तत्वों की भीतरी एचटीएमएल ऐसे लेबल के रूप में div करने के लिए या अगर जोड़े जा रहे हैं पता लगाने के लिए कोशिश कर रहा हूँ:

मैं तरह somthing ऐसा करने में सक्षम होना चाहते हैं) बदल गया है और फिर सामग्री के आधार पर div छुपाएं या दिखाएं।

इस तरह एसएमटी प्राप्त करने के बारे में कोई वैकल्पिक विचार भी की सराहना करता है।

मुझे उम्मीद है कि मुझे ऐसा करने के लिए कुछ अस्पष्ट प्लगइन पर वापस नहीं जाना पड़ेगा!

नोट: इसे कम से कम IE8 में काम करने की आवश्यकता है!

+0

+1 एक भयानक आंख पैच के लिए –

उत्तर

20

आप डोम लेवल 3 इवेंट DOMNodeInserted का उपयोग कर सकते हैं। उदाहरण:

$('#myDiv').bind('DOMNodeInserted', function(e) { 
    console.log('element: ', e.target, ' was inserted); 
}); 

डेमो: http://www.jsfiddle.net/vsgdZ/1/

ईवेंट सक्रिय करेगा जब भी कोई नया नोड तत्व है जिस पर आप हैंडलर बाँध के साथ जोड़ दिया गया था।

+0

या 'DOMSubtreeModified' ईवेंट के बारे में क्या? (केवल क्रोम, फ़ायरफ़ॉक्स और सफारी द्वारा समर्थित) – Jan

+0

@ जेन: अगर मैं ओपी की आवश्यकता को सही ढंग से समझता हूं (नए नोड्स का पता लगाना) यह घटना ठीक करेगी। – jAndy

+0

और क्या यह घटना आग लग जाएगी यदि बच्चों में से एक का नाम बदल गया है? यह 'सामग्री बदलना' भी है। मैं यह नहीं कह रहा हूं कि आपका समाधान गलत है, बस एक और घटना का सुझाव देना जो मदद कर सकता है अगर उसे नए बच्चों के सम्मिलन का पता लगाने से ज्यादा जरूरत है। – Jan

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

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