द्वारा अलग किया गया है, मैं एक jQuery लिपटे सेट में सभी टेक्स्ट इकट्ठा करने का एक तरीका ढूंढ रहा हूं, लेकिन मुझे भाई नोड्स के बीच रिक्त स्थान बनाने की आवश्यकता है जिनमें कोई टेक्स्ट नहीं है उनके बीच नोड्स।एक लिपटे सेट से सभी टेक्स्ट नोड्स को इकट्ठा करने के लिए jQuery का उपयोग करके,
<div>
<ul>
<li>List item #1.</li><li>List item #2.</li><li>List item #3.</li>
</ul>
</div>
तो मैं बस इस तरह की तरह, <div>
की पाठ्य सामग्री इकट्ठा करने के लिए jQuery के text()
विधि का उपयोग करें:
उदाहरण के लिए, इस HTML पर विचार
var $div = $('div'), text = $div.text().trim();
alert(text);
कि निम्न पाठ का उत्पादन:
सूची आइटम # 1. सूची आइटम # 2. सूची आइटम # 3।
क्योंकि वहाँ प्रत्येक <li>
तत्व के बीच कोई खाली स्थान के है। मैं वास्तव में क्या देख रहा हूं यह है (प्रत्येक वाक्य के बीच एकल स्थान को नोट करें):
सूची आइटम # 1। सूची आइटम # 3। सूची आइटम # 3।
यह मुझे सुझाव देता है कि मुझे लिपटे सेट में डीओएम नोड्स को पार करने की आवश्यकता है, प्रत्येक स्ट्रिंग में प्रत्येक के लिए पाठ जोड़ना, एक स्थान के बाद। मैं निम्नलिखित कोड की कोशिश की:
var $div = $('div'), text = '';
$div.find('*').each(function() {
text += $(this).text().trim() + ' ';
});
alert(text);
लेकिन यह निम्न पाठ का उत्पादन:
इस सूची आइटम # 1. इस सूची आइटम # 2. इस है # 3 सूची आइटम है। यह सूची आइटम # 1 है। यह सूची आइटम # 2 है। यह सूची आइटम # 3 है।
मुझे लगता है इस वजह से मैं <div>
के हर वंश के माध्यम से पुनरावृत्ति कर रहा हूँ और पाठ जोड़कर, तो मैं <ul>
और उसके <li>
बच्चों में से प्रत्येक के भीतर पाठ नोड्स हो रही है, दोहराया गया पाठ के लिए अग्रणी।
मुझे लगता है कि मैं संभवतया लिपटे सेट के डीओएम को घुमाने और पाठ नोड्स को जोड़ने के लिए एक सादा जावास्क्रिप्ट फ़ंक्शन ढूंढ सकता/सकती हूं - लेकिन क्या jQuery का उपयोग करके ऐसा करने का एक आसान तरीका है? क्रॉस-ब्राउज़र स्थिरता बहुत महत्वपूर्ण है।
किसी भी मदद के लिए धन्यवाद!
बहुत बढ़िया, यह एक आकर्षण की तरह काम किया! बहुत बहुत धन्यवाद, मुझे नहीं पता कि मैं तुम्हारे बिना क्या करूँगा, बॉबन्स। ;-) – Bungle
'Ndumiso Mlilo पर एक नई तस्वीर को खूबसूरती से काम करता है। '^ _^ – evandrix