Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   получение строки - исключение части (https://javascript.ru/forum/jquery/16750-poluchenie-stroki-isklyuchenie-chasti.html)

Raz0r 20.04.2011 20:18

получение строки - исключение части
 
здравствуйте.
возникла такая проблема.
есть на сайте такая разметка:
<h1 style="margin: 0; padding: 0" class="class1">текст <span style="white-space: nowrap"> продолжение текста</span></h1>

хочу получить "текст"

делал как только знал, вовзращает либо "текст <span style=",
либо null.

пробовал так(это все разные варианты одного и того же):
movie = $(".class1").filter(function(index) { return $(this).attr("style") == "white-space: nowrap"; }).html();
movie = $(".class1").filter(function(index) { return $('span[style*="white-space: nowrap"]', this).length == 0;}).html();
movie = $(".class1").filter("span").html();
movie = $(".moviename-big").html();


подскажите как исправить:-E

Sweet 20.04.2011 20:47

Не знаю, как на jQuery, но на чисто-конкретном браузерном js, это выглядит как-то так:
<h1>текст <span> продолжение текста</span> и еще немного текста</h1>
<script>
function getText(HTMLElement){
  var string = '';
  for(var i = 0, l = HTMLElement.childNodes.length; i < l; i++)
    if( HTMLElement.childNodes[i].nodeType === 3 )
      string += HTMLElement.childNodes[i].nodeValue;
  return string;
};

var header = document.getElementsByTagName('h1')[0];
alert( getText(header) );
</script>

Raz0r 20.04.2011 21:18

Цитата:

Сообщение от Sweet (Сообщение 101572)
Не знаю, как на jQuery, но на чисто-конкретном браузерном js, это выглядит как-то так:
<h1>текст <span> продолжение текста</span> и еще немного текста</h1>
<script>
function getText(HTMLElement){
  var string = '';
  for(var i = 0, l = HTMLElement.childNodes.length; i < l; i++)
    if( HTMLElement.childNodes[i].nodeType === 3 )
      string += HTMLElement.childNodes[i].nodeValue;
  return string;
};

var header = document.getElementsByTagName('h1')[0];
alert( getText(header) );
</script>

за такой вариант спасибо, но меня особо интересует как это на jquery сделать.;)

upd: сделал сам
нужно было немного под-другому:
$(".class1").children('span').remove();
movie = $(".class1").html();


Часовой пояс GMT +3, время: 14:52.