Как получить inner text без тега label?
Доброго время суток,
есть спаны типа:
<span class="value">
<label>Label Text</label>
Some Text
</span>
как наиболее оптимально достать отсюда только Some Text без текста в label?
$('span.value').each(function () {
// $(this).text() - возвращает Label Text Some Text, а нужен только Some Text
});
$('span.value :not(label)') - тоже не получается... тега label в спанах может и не быть, нужен универсальный вариант |
у span class="value"
одна из дочек будет текстовый нод с nodeValue some text |
alert(document.getElementsByTagName('span')[0].lastChild.nodeValue)
Хотя не уверен.Может проблемы через переносы строк....хз |
в цикле проверять this.nodeName
|
Текст в теге label без проблем можно достать ('span.value label').
Но неужели нет селекторов для текстового нода? |
bot87 написал-все работает-или нужно обязательно на jquery
alert(document.getElementsByTagName('span')[0].lastChild.nodeValue) или по другому alert(span.lastChild.nodeValue) где span нужно найти |
Цитата:
|
<span class="value">
<label>Label Text</label>
Some Text
</span>
<script>
var str = document.getElementsByClassName('value')[0].innerHTML
str = str.replace(/\n/,'').replace(/<label>.+<\/label>/,'')
alert(str)
</script>
|
Цитата:
document.evaluate( " span[ contains( concat( ' ', @class, ' ' ), ' label ' ) ] / text() " ) |
как-то все сильно наворочено получилось...
А если просто исключить теги <label> из чайлдов? Пытаюсь сделать так:
$('span.value').each(function () {
$(this).contents().not('label').text();
не выходит... Как правильно это реализовать? |
| Часовой пояс GMT +3, время: 22:14. |