2013-07-30 9 views
11

मैं एक html पृष्ठ है, जहां एचटीएमएल के रूप में प्रदान किया गया है: '। सभी नरक'लेबल टेक्स्ट मान को HTML पृष्ठ कैसे प्राप्त करें?

<div id = 'mViB'> 
<table id = 'myTable'> 
<tbody> 
<tr> ...</tr> 
<tr>...</tr> 
<tr> ...</tr> 
<tr>....</tr> 
<tr> 
<td> 
<label id="*spaM4" for="*zigField4"> 
All hell. 
<span class = 'msde32'></span> 
</label> 
</td> 
</tr> 
</tbody> 
</table> 
</div> 

अब क्या मैं करना चाहता हूँ लेबल पाठ मिलता है लेबल से

उस उद्देश्य के लिए मैंने दोनों का उपयोग किया है: document.getElementById('*spaM4').text और document.getElementById('*spaM4').value लेकिन संयोग से उनमें से कोई भी काम नहीं किया।

मैंने document.getElementById('*spaM4').innerHTML का उपयोग किया है, लेकिन यह span class भी देता है, लेकिन मैं बस टेक्स्ट प्राप्त करना चाहता हूं।

दुर्भाग्य से, तत्व आईडी में तारांकन तृतीय पक्ष कोड हैं और मैं इसे बदल नहीं सकता।

कोई भी लेबल टेक्स्ट प्राप्त करने का कोई अन्य तरीका सुझा सकता है?

+2

इसका दस्तावेज़ .getElementById ('spaM4')। आंतरिक HTML; आईडी से हटाएं – PravinS

+2

आईडी में क्षुद्रग्रहों का उपयोग न करें, क्या आप? –

+0

@ डेविड जाशी: उनका उपयोग किया जा सकता है, यह कोई समस्या नहीं है, वर्गीकरण और अनुक्रमण के लिए कुछ बार, तारांकन का उपयोग किया जाता है। –

उत्तर

23

इस प्रयास करें:

document.getElementById('*spaM4').textContent 

आप लक्षित करना < IE9 तो आप प्राप्त करने के लिए .innerText

+0

'textContent' मेरे लिए नौकरी करता है, +1 और स्वीकार करता है। –

3

उपयोग innerText/textContent:

var el = document.getElementById('*spaM4'); 
    console.log(el.innerText || el.textContent); 

फिडल: http://jsfiddle.net/NeTgC/2/

+1

'आंतरिक टेक्स्ट' सार्वभौमिक रूप से संगत नहीं है। – Tomalak

+0

धन्यवाद, और उपयोगी पहेली के लिए +1। –

+0

@TheDarkKnight आपका स्वागत है! – Cherniv

9

यह वही है आप सादे जे एस में चाहते हो जाएगा।

var el = document.getElementById('*spaM4'); 
text = (el.innerText || el.textContent); 

FIDDLE

+0

आप सफेद स्थान को सामान्य करने के लिए '/\s{2,}/g.replace(text,' ') जोड़ सकते हैं। – Tomalak

+1

धन्यवाद।'आंतरिक टेक्स्ट' मोज़िला में काम नहीं करता था, लेकिन 'टेक्स्ट सामग्री' ने किया था। +1 –

+0

@TheDarkKnight, बढ़िया। हैप्पी यह उपयोगी था। – Sergio

0

सबसे अच्छा तरीका उपयोग करने की आवश्यकता की जरूरत है 01 से पाठ मूल्यतत्व निम्नानुसार है। <label for='phone'>Phone number</label> <input type='text' id='phone' placeholder='Mobile or landline numbers...'>

इस कोड को पाठ मान को उद्धृत करेगा 'फोन नंबर:

function id(e){return document.getElementById(e)} 

निम्नलिखित संरचना मान लें:

आप तत्व आईडी हो रही होगी, तो अक्सर यह आईडी वापस जाने के लिए एक समारोह के लिए सबसे अच्छा है '<label>: var text = id('phone').previousElementSibling.innerHTML;

यह कोड सभी ब्राउज़रों पर काम करता है, और आपको प्रत्येक <label> तत्व को एक अद्वितीय आईडी देने की आवश्यकता नहीं है।

+0

आप फ़ायरफ़ॉक्स समेत आधुनिक ब्राउज़र के रूप में 'पिछली एलीमेंट सिब्लिंग.टेक्स्ट सामग्री' का भी उपयोग कर सकते हैं, इस प्रारूप को पहचानें। – BlackMagic

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