2013-01-09 3 views
13

यह एक jQuery चयन से पाठ प्राप्त करने के लिए तुच्छ है:jQuery .text() बराबर धर्मान्तरित कि <br> टैग खाली स्थान के लिए

<span id="foo">hello world</span> 

$('#foo').text(); 

hello world

लेकिन जब jQuery चयन <br> टैग हैं वे अवधारणात्मक रूप से न्यूलाइन हैं, जो सफेद जगह हैं। दुर्भाग्य से .text() उन्हें पूरी तरह से स्ट्रिप्स:

<span id="foo">hello<br>world</span> 

$('#foo').text(); 

helloworld

मैं कैसे इस तरह के एक अवधि से पाठ निकाल सकते ऐसी है कि वह hello world बजाय में परिणाम है?

बेशक यह एक मामूली उदाहरण है जो समस्या को स्पष्ट रखने के लिए आविष्कार किया गया है। एक वास्तविक उत्तर को ".text() के बराबर" होना चाहिए और पाठ्यक्रम के मनमाने ढंग से HTML को संभालना होगा। यहाँ एक से थोड़ा अधिक मुश्किल उदाहरण है, यह भी बना हुआ: .text()

$('#foo').html(); 

की

<div id="foo"><span class="bar"><em>hello</em><br></span>world</div> 

उत्तर

11

के रूप में Mims replaceWith() का उपयोग रिक्त स्थान के लिए <br> बदलने के लिए सुझाव देते हैं, लेकिन जैसा कि परिवर्तन करने के लिए नहीं मूल तत्व clone() का उपयोग तत्व का क्लोन बनाने के लिए।

var foo = $("#foo").clone(); 
foo.find("br").replaceWith(" "); 
var text = foo.text(); 

DEMO

+0

हम्म यह jsfiddle में बहुत अच्छा काम करता है, लेकिन जब मैं इसे अपने असली कोड में आज़माता हूं तो मुझे सिंटैक्स त्रुटि, अपरिचित अभिव्यक्ति मिलती है : "'। जगह पर() '... पर इसका अर्थ नहीं हो सकता है ... – hippietrail

+0

@hippietrail क्या आपने सीधे jsfiddle से कोड कॉपी किया था? यदि ऐसा है तो इसे मैन्युअल रूप से टाइप करने का प्रयास करें। – Musa

+0

मुझे अभी भी यह त्रुटि मिलती है, और फ़ायरफ़ॉक्स में भी। – hippietrail

11

उपयोग .html() बजाय या डोम विधि का उपयोग .innerText

$('#foo')[0].innerText ; 

Check Fiddle

+0

लेकिन मैं एक HTML पार्स समस्या के साथ छोड़ दिया जाएगा, जब दस्तावेज़ मैं से निकालने कर रहा हूँ मेरी उदाहरण से बहुत कम तुच्छ मार्कअप है कोई? – hippietrail

+0

क्या आप ऐसी स्थिति के लिए एक उदाहरण दे सकते हैं !! .. मुझे नहीं लगता कि यह एक समस्या होनी चाहिए –

+0

'

hello
world
' – hippietrail

2

आप replaceWith() फ़ंक्शन का उपयोग कर सकते हैं।

$("br").replaceWith(" "); 
+0

मैं इसे पोस्ट करने वाला था और इस प्रासंगिक पहेली को एक साथ रखता था: http://jsfiddle.net/FCck2/ –

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