如何从HTML页面获取标签文本值?

The*_*ght 18 javascript

我有一个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>
Run Code Online (Sandbox Code Playgroud)

现在我想做的是获得标签文字'All hell.' 来自标签.

为此目的,我都用了:document.getElementById('*spaM4').textdocument.getElementById('*spaM4').value 而顺带没有一次成功.

我已经使用了document.getElementById('*spaM4').innerHTML 但也返回了span class,但我只是想得到文本.

不幸的是,元素ID中的星号是第三方代码,我无法更改它.

任何人都可以建议任何其他方式来获取标签文本?

Nik*_*las 32

试试这个:

document.getElementById('*spaM4').textContent
Run Code Online (Sandbox Code Playgroud)

如果您需要定位<IE9,那么您需要使用 .innerText


Ser*_*gio 11

这将在普通的JS中获得你想要的东西.

var el = document.getElementById('*spaM4');
text = (el.innerText || el.textContent);
Run Code Online (Sandbox Code Playgroud)

小提琴

  • 谢谢。`innerText` 在 mozilla 中不起作用,但 `textContent` 可以。+1 (2认同)

Che*_*niv 6

使用innerText/ textContent

  var el = document.getElementById('*spaM4');
  console.log(el.innerText || el.textContent);
Run Code Online (Sandbox Code Playgroud)

小提琴:http : //jsfiddle.net/NeTgC/2/


小智 5

从元素获取文本值的最佳方法<label>如下。

如果你经常获取元素 id,最好有一个函数来返回 id:

function id(e){return document.getElementById(e)}
Run Code Online (Sandbox Code Playgroud)

假设以下结构: <label for='phone'>Phone number</label> <input type='text' id='phone' placeholder='Mobile or landline numbers...'>

此代码将从中提取文本值“电话号码”<label>: var text = id('phone').previousElementSibling.innerHTML;

此代码适用于所有浏览器,并且您不必为每个<label>元素提供唯一的 id。


Cod*_*ker 5

您可以使用 textContent 属性从标签中检索数据。

 <script>
       var datas = document.getElementById("excel-data-div").textContent;
    </script>


<label id="excel-data-div" style="display: none;">
     Sample text
</label>
Run Code Online (Sandbox Code Playgroud)