2013-07-30 39 views
11

Tôi có một trang html, nơi html được render thành: 'Tất cả các địa ngục'Làm thế nào để có được giá trị văn bản nhãn tạo thành một trang 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> 

Bây giờ những gì tôi muốn làm là có được văn bản nhãn từ nhãn.

Vì mục đích đó tôi đã sử dụng cả hai: document.getElementById('*spaM4').textdocument.getElementById('*spaM4').value nhưng tình cờ không ai trong số họ làm việc.

Tôi đã sử dụng document.getElementById('*spaM4').innerHTML nhưng cũng trả về số span class, nhưng tôi chỉ muốn nhận văn bản.

Thật không may, dấu sao trong ID phần tử là mã của bên thứ 3 và tôi không thể thay đổi nó.

Bất kỳ ai có thể đề xuất bất kỳ cách nào khác để nhận được văn bản nhãn không?

+2

document.getElementById ('spaM4') của nó. InnerHTML; xóa * khỏi id – PravinS

+2

Không sử dụng các dấu hoa thị trong ID, phải không? –

+0

@DavidJashi: Chúng có thể được sử dụng, đó không phải là một vấn đề, một số lần để phân loại và lập chỉ mục, dấu hoa thị được sử dụng. –

Trả lời

23

Hãy thử điều này:

document.getElementById('*spaM4').textContent 

Nếu bạn cần phải nhắm mục tiêu < IE9 thì bạn cần phải sử dụng .innerText

+0

'textContent' thực hiện công việc cho tôi, +1 và được chấp nhận. –

9

này sẽ có được những gì bạn muốn trong JS đồng bằng.

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

FIDDLE

+0

Bạn có thể thêm '/\s{2,}/g.replace(text, '')' để chuẩn hóa khoảng trắng. – Tomalak

+1

Cảm ơn.'innerText' không hoạt động trong mozilla, nhưng' textContent' đã làm. +1 –

+0

@TheDarkKnight, tuyệt vời. Hạnh phúc nó rất hữu ích. – Sergio

0
var lbltext = document.getElementById('*spaM4').innerHTML 
0

Cách tốt nhất để có được giá trị văn bản từ 01 Thành phầnnhư sau.

nếu bạn sẽ nhận được id yếu tố thường xuyên đó là tốt nhất để có một hàm trả về id:

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

Giả sử cấu trúc sau: <label for='phone'>Phone number</label> <input type='text' id='phone' placeholder='Mobile or landline numbers...'>

Mã này sẽ trích xuất các giá trị văn bản 'Số điện thoại 'từ số <label>: var text = id('phone').previousElementSibling.innerHTML;

Mã này hoạt động trên tất cả các trình duyệt và bạn không phải cung cấp cho mỗi thành phần <label> một id duy nhất.

+0

Bạn cũng có thể sử dụng 'previousElementSibling.textContent 'làm trình duyệt hiện đại, bao gồm Firefox, nhận ra định dạng này. – BlackMagic

Các vấn đề liên quan