Ответ 1
Попробуйте следующее:
document.getElementById('*spaM4').textContent
Если вам нужно настроить таргетинг < IE9, тогда вам нужно использовать .innerText
У меня есть 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
, но я просто хочу получить текст.
К сожалению, звездочки в идентификаторах элементов являются сторонним кодом, и я не могу его изменить.
Можно ли предложить какой-либо другой способ получения текста ярлыка?
Попробуйте следующее:
document.getElementById('*spaM4').textContent
Если вам нужно настроить таргетинг < IE9, тогда вам нужно использовать .innerText
Это даст вам то, что вы хотите в простой JS.
var el = document.getElementById('*spaM4');
text = (el.innerText || el.textContent);
Используйте innerText
/textContent
:
var el = document.getElementById('*spaM4');
console.log(el.innerText || el.textContent);
Fiddle: http://jsfiddle.net/NeTgC/2/
var lbltext = document.getElementById('*spaM4').innerHTML
Лучший способ получить текстовое значение из элемента <label>
выглядит следующим образом.
если вы часто получаете идентификаторы элементов, лучше всего иметь функцию для возврата идентификаторов:
function id(e){return document.getElementById(e)}
Предположим, что следующая структура:
<label for='phone'>Phone number</label>
<input type='text' id='phone' placeholder='Mobile or landline numbers...'>
Этот код будет извлекать текстовое значение "Номер телефона" из <label>:
var text = id('phone').previousElementSibling.innerHTML;
Этот код работает во всех браузерах, и вам не нужно указывать каждому элементу <label>
уникальный идентификатор.