Вот общее решение, которое сделает это без уродливости RegExp: -)
var text = $('.myTable').clone()
.children()
.detach()
.end()
.text();
Edit 1:
В качестве альтернативы, если вы уверены, что <span>
всегда будет содержать только какой-то символ пробела - вы можете использовать .text()
, за которым следует .trim()
, например:
$.trim( $('.myTable').text() );
Редактировать 2:
ПростоЧтобы поиграть еще, вот еще один пример универсального решения, которое не требует большого количества jQuery и, следовательно, гораздо более эффективно.Я представляю удивительный плагин .readStringOnly()
:
$.fn.readStringOnly = function () {
var nodes = this[0].childNodes,
text = '';
for (var i=0, item; (item = nodes[i]); i++) {
if ( item.nodeType == 3 ) { // text node!
text += item.nodeValue;
}
}
return text;
};
// Usage:
// var text = $('.myTable').readStringOnly();
Это, по сути, то, что делает первое решение в чисто jQuery-методах, но поскольку jQuery не обеспечивает поддержку обработки текстовых узлов, у одного остаются два довольно плохих варианта.: неэффективный код jQuery или что-то вроде громоздкой бесполезности W3C-DOM.(так же хорошо, как я сделал плагин из него.)
...
Опять же, вы всегда можете просто использовать регулярное выражение, как уже было предложено кем-то.: -)