2010-07-30 18 views
29
window.location.hash

मैं इस सरल स्क्रिप्ट है को हटाने:# से

$(document).ready(function(){ 

var $yoyo = window.location.hash; 

alert($yoyo); 

}); 

लेकिन मैं के रूप में मैं div पता लगाने के लिए आईडी चर का उपयोग किया जाएगा # प्रतीक से छुटकारा पाने की जरूरत है। मैंने .remove ('#') का उपयोग करने का प्रयास किया है, लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है।

अग्रिम में बहुत धन्यवाद!

+0

http://stackoverflow.com/a/5298684/104380 – vsync

उत्तर

76
var $yoyo = window.location.hash.substring(1); 

इसका मतलब यह है कि हम चरित्र 1 (0-अनुक्रमित, दूसरा) के बाद एक सबस्ट्रिंग ले रहे हैं। substring दस्तावेज़ देखें।

+4

यह रूप में लंबे समय से काम करता है के रूप में स्ट्रिंग वास्तव में "#" के साथ शुरू होता है, लेकिन यह तर्क दिया जा सकता है कि इस और अधिक मजबूत है और पढ़ने में आसान: 'window.location.hash.replace (/^# /," ") '। –

+0

@ ChristianDavén 'window.location.hash' के पास हमेशा एक हैश होगा या खाली होगा, और '' 'सब्स्ट्रिंग (1) ===' '', इसलिए मुझे लगता है कि समाधान बहुत मजबूत है। मुझे लगता है कि आपका यद्यपि अधिक पठनीय है। (यह भी देखें कि क्यों .remove() काम नहीं करता है, यह जानने के लिए http://lea.verou.me/2011/05/get-your-hash-the-bulletproof-way/) –

16
var $yoyo = window.location.hash.replace("#", ""); 

.remove() एक jQuery डोम मैनिपुलेशन फ़ंक्शन है। .replace() एक मूल जावास्क्रिप्ट फ़ंक्शन है जो एक स्ट्रिंग के अंदर एक स्ट्रिंग के साथ स्ट्रिंग को प्रतिस्थापित करता है। W3Schools से:

<script type="text/javascript"> 

var str="Visit Microsoft!"; 
document.write(str.replace("Microsoft", "W3Schools")); 

</script> 
+1

+1 देखें। –

+0

बेशक यह स्टैक ओवरफ़्लो है, यह एक jQuery डोम मैनिपुलेशन फ़ंक्शन है। लेकिन वास्तव में यह कुछ भी हो सकता है। -_- –

+0

@Will, पोस्ट jQuery के साथ टैग किया गया था। यह कुछ भी नहीं हो सकता;) –

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