2015-06-23 3 views
6

इस तालिका में नामितजावास्क्रिप्ट वर्ग के नाम से अवधि के लिए भीतरी HTML पाठ मिल

<div class="leftCol">  
..... 
<tr id="my_cd"> 
<td><span class="agt_span">My Code</span></td> 
</tr> 
..... 
</div> 

मैं जो कुछ भी पाठ अवधि के भीतर निहित है प्राप्त करने में सक्षम होने की जरूरत है एक div के भीतर निहित है कोड के बुनियादी स्वरूप है कक्षा, इस मामले में मुझे "मेरा कोड" टेक्स्ट खींचने की आवश्यकता है और फिर इसे एक सरणी में जोड़ें। एक सरणी में पाठ जोड़ना वह मुद्दा नहीं है जो आसान है लेकिन मैं यह नहीं समझ सकता कि पाठ को कैसे खींचें। कोई फर्क नहीं पड़ता कि मैं क्या कोशिश करता हूं मैं कुछ भी नहीं कर सकता लेकिन एक 'अपरिभाषित' मूल्य।

कक्षा नाम से अवधि के लिए मुझे आंतरिक HTML टेक्स्ट मान कैसे प्राप्त किया जा सकता है?

पहला प्रश्न हल हो गया !!

दूसरा सवाल पहले पर विस्तार:

<div class="leftCol">  
..... 
<tr id="my_cd"> 
    <td><span class="agt_span">My Code</span></td> 
    <td> 
    <div> 
     <select name="agt_drp" id="agt_drp" class="agt_drp">...</select> 
    </div> 
    </td> 
</tr> 
</div> 

मान लीजिए कि मैं चुनिंदा आईडी "agt_drp" है और मैं span class पाठ पाने के लिए चाहते हैं। क्या उसे करने का कोई तरीका है?

+1

'$ ('span.agt_span')। Html()' ... –

+0

मैंने jquery और जावास्क्रिप्ट कोड दोनों में एक पहेली जोड़ दी है। https://jsfiddle.net/1xnkr0fx/ –

उत्तर

2

वेनिला जावास्क्रिप्ट में, आप getElementsByClassName (उपयोग कर सकते हैं):

var htmlString = document.getElementsByClassName('agt_span')[0].innerHTML; 

https://jsfiddle.net/ky38esoo/

सूचना विधि के पीछे सूचकांक ।

1

JQuery: आप गुणकों इस वर्ग के साथ तत्व है, तो

document.getElementsByClassName('agt_span')[0].innerHTML; 

:

$('span.agt_span').text(); 

शुद्ध जावास्क्रिप्ट (: पहले एक पाने के लिए [0] आप अपने वर्ग तत्व की स्थिति को निर्दिष्ट करने की आवश्यकता) , आप इसे लूप कर सकते हैं:

var elts = document.getElementsByClassName('agt_span'); 
for (var i = 0; i < elts.length; ++i) { 
    alert(elts[i].innerHTML); 
} 
0

हालांकि getElementsByClassName लगता है सभी प्रमुख ब्राउज़र द्वारा समर्थित होना चाहिए, जो अब इसका उपयोग करने के लिए तर्क है। अपने कोड को संगत और उपयोगी रखने के लिए, W3C मानक DOM Level 3 Core का बेहतर उपयोग करें। दस्तावेज़ आईडीएल ऐसी विधि का वर्णन नहीं करता है!

तो, का इस्तेमाल करें

var table = document.getElementById("my_cd"); /* id is unique by definition! */ 
var spans = table.getElementsByTagName("span"); 
var txt; 

for(i in spans) { 
    if(spans[i].getAttribute("class").contains("agt_span")){ 
     txt = spans[i].firstChild; /* a span should have only one child node, that contains the text */ 
    } 
} 
return txt; 

इस विधि सही नहीं है के रूप में आप वास्तव में अंतरिक्ष वर्ण पर spans[i].getAttribute("class").split(" ") विभाजित है और जाँच इस सरणी शामिल है "agt_span" की जरूरत है।

वैसे: आंतरिक HTML कोई डोम विशेषता नहीं है। लेकिन आप डब्ल्यू 3 सी डोम का उपयोग करके एक संगत और लचीला तरीके से कुछ भी कार्यान्वित कर सकते हैं और आप प्रभावी और संगत कोड लिखना सुनिश्चित करेंगे।

यदि जेएस प्रोग्रामर ने डब्ल्यू 3 सी दस्तावेज़ों का उपयोग किया था और यदि उन सभी ईसीएमएस्क्रिप्ट और डब्ल्यू 3 सी नियमों को तोड़ने के लिए कोई इंटरनेट एक्सप्लोरर नहीं था, तो उन सभी ब्राउज़र संस्करणों के बीच कई असंगतताएं कभी नहीं होतीं।

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