Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.06.2013, 08:06
Аватар для Lutidza
Интересующийся
Отправить личное сообщение для Lutidza Посмотреть профиль Найти все сообщения от Lutidza
 
Регистрация: 06.11.2012
Сообщений: 17

Как получить содержание теге, без дочерних тегов ? :)
Как получить содержание тега, без дочерних тегов ?*

Здравствуйте.

Помогите, пожалуйста, решить простую задачу.

Есть следующий Html:
<span class="productPrice">
  <span itemprop="price">
      550  
      <span class="currency">руб</span>
  </span>
</span>



Задача получить значение цены без валюты, но у меня это не выходит .
Ни как не могу избавиться от пресловутого <span class="currency">руб</span>

Делаю так:
FullPrice = jQuery(".productPrice>span").html();
FullPrice = jQuery(FullPrice).remove('.currency');


Но мне возвращает как раз то значение которое я хочу удалить


Как из выше описанного HTML кода получить только число "550" ?

Большое, спасибо.

Последний раз редактировалось Lutidza, 07.06.2013 в 08:11.
Ответить с цитированием
  #2 (permalink)  
Старый 07.06.2013, 09:03
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Lutidza
получить значение цены без валюты
Как вариант...

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
$(document).ready(function (){
	var txt=$('.productPrice > span').text();
	txt=txt.replace(/[^0-9]/gm,'');
	alert('>'+txt+'<')
});
</script>
</head>
<body>
<span class="productPrice">
	<span itemprop="price">
		550  
		<span class="currency">руб</span>
	</span>
</span>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 07.06.2013, 15:10
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Можно так:
alert($('productPrice > span').html().split('<')[0]);
Ответить с цитированием
  #4 (permalink)  
Старый 07.06.2013, 15:36
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

<span class="productPrice">
  <span itemprop="price">
      550 
      <span class="currency">руб</span>
  </span>
</span>
<script>
var text = document.querySelector('.productPrice > span').firstChild.textContent;
alert(text);
</script>
Ответить с цитированием
  #5 (permalink)  
Старый 07.06.2013, 15:39
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

<span class="productPrice">
  <span itemprop="price">
      550
      <span class="currency">руб</span>
  </span>
</span>
<script>
var price = document.querySelector('.productPrice > span')
alert(parseInt(price.textContent || price.innerText))
</script>
Ответить с цитированием
  #6 (permalink)  
Старый 07.06.2013, 18:23
Аватар для Lutidza
Интересующийся
Отправить личное сообщение для Lutidza Посмотреть профиль Найти все сообщения от Lutidza
 
Регистрация: 06.11.2012
Сообщений: 17

Спасибо, большое.
Взял последний вариант, хотя и пример с регулярками тоже вполне походит.

Вот только я не понял, чем отличается:
document.querySelector('.productPrice > span')

От:
$('.productPrice > span')

И почему последний не работает в этой конструкции:
price = $('.productPrice > span')
alert(parseInt(price.textContent || price.innerText));
Ответить с цитированием
  #7 (permalink)  
Старый 07.06.2013, 19:10
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Отличие в том что $ - это функция из библиотеки jQuery, и она возвращает не элемент, а массивоподобный объект-коллекцию, у которой нет конечно свойств элемента. Вместо этого нужно price.text() использовать.
querySelector нету в допотопных ИЕ, а в IE8 не работает с css3 селекторами.
Ответить с цитированием
  #8 (permalink)  
Старый 07.06.2013, 21:51
Аватар для Lutidza
Интересующийся
Отправить личное сообщение для Lutidza Посмотреть профиль Найти все сообщения от Lutidza
 
Регистрация: 06.11.2012
Сообщений: 17

Ок. Понял. Спасибо.
Ответить с цитированием
  #9 (permalink)  
Старый 13.10.2014, 04:30
Новичок на форуме
Отправить личное сообщение для fb_max Посмотреть профиль Найти все сообщения от fb_max
 
Регистрация: 13.10.2014
Сообщений: 1

Жаль вас всех разочаровывать но

var price = document.querySelector('.productPrice > span');
alert(parseInt(price.textContent || price.innerText));

выведет оба текста из двух span !

Вот решение : (результат - текст только в данном елементе , без дочерних)
function getInnerText(DOMelement)
{
    var text = '';
	childrenList = DOMelement.childNodes;
	for (var i=0; i<childrenList.length; i++)
       if (childrenList.item(i).nodeType==3)
		  text = text + childrenList.item(i).nodeValue;
	return text;
}
var price = getInnerText(document.querySelector('.productPrice > span'));
Ответить с цитированием
  #10 (permalink)  
Старый 13.10.2014, 07:18
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,127

delete =)

Последний раз редактировалось MallSerg, 13.10.2014 в 07:26.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить якорь из url okinadok Элементы интерфейса 19 05.07.2016 11:44
Как получить название композиции из Windows Mepia Plyaer alx99 Javascript под браузер 1 18.02.2011 16:21
Получить содержание другой страницы в переменную Shocker Общие вопросы Javascript 1 08.02.2011 15:51
Как получить список пользовательских функций объекта window? Маэстро Events/DOM/Window 13 03.07.2010 13:20
Как получить файл с сервера AJlekceu AJAX и COMET 1 02.11.2008 13:41