2012-02-09 11 views
9

मैं कैसे पता लगा सकता हूं कि तत्व क्या है <script> बैठता है?
एक उदाहरण के रूप में, मैं कैसे पता कर सकते हैं क्या तत्व हम कर रहे हैं के इसजावास्क्रिप्ट में वर्तमान तत्व क्या है?

<div> 
<script type="text/javascript"> 
    var time = new Date(), hrs = time.getHours(), min = time.getMinutes(); 
    document.write('It is '+hrs+":"+(min<10?'0':'')+min); 
</script> 
</div> 

तो ले अगर मैं और अधिक आधुनिक कुछ को यह बदलना चाहते हैं,?
तो मैं jQuery

$(thisdiv).html('It is '+hrs+":"+(min<10?'0':'')+min); 

में, लिखने के लिए उदाहरण के लिए चाहते हैं, लेकिन मैं thisdiv कैसे मिलता है?
हाँ, मुझे पता है, मैं इस पर एक आईडी डाल सकता हूं, लेकिन मुझे लगता है कि यह आवश्यक नहीं होगा। ब्राउज़र जानता है कि हम कहां हैं, अन्यथा यह दस्तावेज़ भी नहीं कर सका। लिखना!

तो, सुझाव? मैंने खोज की, लेकिन इसे नहीं मिला। क्या यह इतना आसान है कि मैं स्पष्ट दिख रहा हूं?

उत्तर

20

स्क्रिप्ट का प्रयास करें दस्तावेज़ में उपस्थिति के क्रम में क्रियान्वित कर रहे हैं। एक स्क्रिप्ट टैग की सामग्री का मुठभेड़ पर मूल्यांकन किया जाता है, इसलिए, अंतिम <script> तत्व हमेशा चालू होता है।

कोड:

<div> 
    <script> 
    var scriptTag = document.getElementsByTagName('script'); 
    scriptTag = scriptTag[scriptTag.length - 1]; 

    var parent = scriptTag.parentNode; 
    </script> 
</div> 
+0

+1 के करीब काफी करीब है, मुझे विश्वास नहीं है कि मैंने इसे मूलभूत अवधारणा को अनदेखा किया है :( – danjah

+0

+1, सुरुचिपूर्ण समाधान। – osahyoun

+0

धन्यवाद! मुझे या तो पता नहीं था नवीनतम स्क्रिप्ट सूची में आखिरी लिपि थी, इसके निष्पादन के दौरान, इसलिए यह समाधान मैं ढूंढ रहा था। और एक प्लस के रूप में, यह परीक्षण किए गए सभी ब्राउज़रों पर भी काम करता है, यहां तक ​​कि नेटस्केप 6. (हाँ, मैं पूरी तरह से हूं ।) –

0
$('script#some_id').parent().html('blah blah'); 
+2

* हाँ, मैं जानता हूँ कि, मैं एक आईडी उस पर डाल सकते हैं, लेकिन मैं महसूस कर रही है कि आवश्यक नहीं होगा। * –

+0

श्री लिस्टर ने स्क्रिप्ट को एक आईडी नहीं देने का जिक्र किया था, पहले एसओ पर मैं एक समान समाधान की तलाश में था क्योंकि मेरे पास बहुत सी स्कूली है एक दस्तावेज़ में रिप्ट एल्स जिन्हें सभी को "वे कहां हैं" के ज्ञान की आवश्यकता होती है, मैं सबसे अच्छी तरह से आ सकता हूं, स्क्रिप्ट ब्लॉक में एक विशिष्ट यादृच्छिक var को अन्य स्क्रिप्ट के भीतर पहुंच की पहचान करने के लिए सेट कर रहा था (http://stackoverflow.com/questions/3057628/कैसे करने वाली स्वयं की पहचान-स्थिति-एक स्क्रिप्ट टैग में-डोम की)। तो हो सकता है कि आईडी जाने का रास्ता है ... उत्सुकता से अपना प्रश्न देखें। – danjah

0

इस

<div id="mydiv"> 
<script type="text/javascript"> 
    var time = new Date(), hrs = time.getHours(), min = time.getMinutes(); 
    document.getElementById('mydiv').innerHTML = 'It is '+hrs+":"+(min<10?'0':'')+min; 
</script> 
</div> 
+1

* हाँ, मुझे पता है, मैं इस पर एक आईडी डाल सकता हूं, लेकिन मुझे लगता है कि यह आवश्यक नहीं होगा। * –

+0

ओह क्षमा करें मुझे यह बयान मिला, मुझे लगता है कि श्री रॉब डब्ल्यू आपके समाधान –

1

फ़ायरफ़ॉक्स:

document.currentScript.parentElement 

क्रोम:

document.scripts.length 
संबंधित मुद्दे