2012-05-04 28 views
5

यहाँ है कि मैं क्याjQuery का उपयोग कर स्पैन के साथ टेक्स्ट का हिस्सा कैसे लपेटें?

Fox<span>Rox</span> 
पहले कि

FoxRox 

मैं कैसे Rox चारों ओर फैला लपेट करते

करने के लिए कोशिश कर रहा हूँ है?

+0

आप हमें बता सकते हैं क्यों आप इसे की आवश्यकता है और कुछ और संदर्भ हम आपको अधिक मदद करने में सक्षम होगा। यहां और प्रश्नों के लिए सलाह के रूप में लें। – gdoron

उत्तर

5

यह आपको पूरे डोम खोज और प्रत्येक Rox<span>Rox</span> साथ बदल देगा:

$(':contains("Rox")').html(function(index, oldHTML) { 
    return oldHTML.replace(/(Rox)/g, '<span>$&</span>'); 
});​ 

Live DEMO

+0

मुझे अप्रत्याशित टोकन ILLEGAL भी मिला :( – PhoxKiD

+0

@gdoron मुझे कुछ अजीब परिणाम मिल रहे हैं - जेएसबीएन की गलती हो सकती है। – Sampson

+1

@gdoron बस jsfiddle में सब कुछ करने की कोशिश की और यह ठीक काम किया। अच्छाई, jsbin मुझे एक पल के लिए पागल हो गया था वहाँ – Sampson

5

इस मामले में, आप जावास्क्रिप्ट replace() विधि इस्तेमाल कर सकते हैं:

'FoxRox'.replace(/(Rox)/, '<span>$1</span>'); 

सभी दस्तावेज के माध्यम से इस बदलने के लिए, आप की कोशिश कर सकते हैं:

$(":contains('Rox')").html(function(i,o){ 
    return o.replace(/(Rox)/g, '<span>$1</span>'); 
});​ 

ध्यान दें, यदि आपके शब्द है "रोक्स" नहीं, आपको इसे उपरोक्त स्क्रिप्ट में बदलना होगा।

+0

मुझे लगता है कि मुश्किल बात यह है कि डोम को कैसे बदला जाए। – gdoron

+0

कृपया मेरी वेबसाइटों की जांच करें कि मैं अभी इस पर काम कर रहा हूं, http://www.foxklld.site88.net। मैंने आपके कोड को चिपकाया लेकिन यह मुझे किसी प्रकार की त्रुटि देता है और यह भी कि मैं 'रोक्स' के साथ 'KllD' को प्रतिस्थापित करना चाहता हूं, आप देखेंगे कि मेरा क्या मतलब है। तो मुझे ऐसा कुछ चाहिए जैसे 'फॉक्सक्लड'। जगह (/ (केएलडी) /, ' रोक्स'); '। इसके अलावा, क्रोम कंसोल पर यह अप्रत्याशित टोकन ILLEGAL कहा। – PhoxKiD

+0

@ user1374078 लेकिन आप इसे अपने पूरे दस्तावेज़ में बदलना चाहते हैं, है ना? – Sampson