Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.11.2014, 14:27
Профессор
Отправить личное сообщение для ufaclub Посмотреть профиль Найти все сообщения от ufaclub
 
Регистрация: 27.11.2010
Сообщений: 201

селектор точного вхождения текста
есть код на странице

<span class="price">101 200 <span class="currency">руб</span></span>
<span class="price">0 <span class="currency">руб</span></span>
<span class="price">500 100 <span class="currency">руб</span></span>
<span class="price">10 899 <span class="currency">руб</span></span>
<span class="price">23 200 <span class="currency">руб</span></span>
<span class="price">13 213 <span class="currency">руб</span></span>


мне нужно как то через jquery поменять текст

<span class="price">0 <span class="currency">руб</span></span>


на

<span class="price">По<span class="currency">согласованию</span></span>



Вот таким селектором получилось выделить то что нужно

span.price:contains("0") span.currency'

но JQ выделяет не только там где 0 руб. но и там где 0 присутствует. например селектор сработает на 100 399 руб. и на 10 рублей.

А мне нужно чтобы он срабатывал только на 0 руб.

Помогите пожалуйста
Ответить с цитированием
  #2 (permalink)  
Старый 12.11.2014, 14:39
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,491

Только contains'ом это не сделаешь, надо в ручную фильтровать:
<span class="price">101 200 <span class="currency">руб</span></span>
<span class="price">0 <span class="currency">руб</span></span>
<span class="price">500 100 <span class="currency">руб</span></span>
<span class="price">10 899 <span class="currency">руб</span></span>
<span class="price">23 200 <span class="currency">руб</span></span>
<span class="price">13 213 <span class="currency">руб</span></span>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<script>
  $('span.price').filter( function(){
    return this.innerHTML.charAt(0) == '0'
  }).css('color','red')
</script>
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 12.11.2014, 14:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

ufaclub,
а почему не на сервере?
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
 .price{
    display: block;
  }
  span {
     cursor: pointer;
  }
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function(){
      $('span.price').filter(function(index){
    return this.firstChild.data == '0 ';
  }).html('По<span class="currency"> согласованию</span>')
});
  </script>
</head>

<body>
<span class="price">101 200 <span class="currency">руб</span></span>
<span class="price">0 <span class="currency">руб</span></span>
<span class="price">500 100 <span class="currency">руб</span></span>
<span class="price">10 899 <span class="currency">руб</span></span>
<span class="price">23 200 <span class="currency">руб</span></span>
<span class="price">13 213 <span class="currency">руб</span></span>

</body>

</html>
Ответить с цитированием
  #4 (permalink)  
Старый 12.11.2014, 15:16
Профессор
Отправить личное сообщение для ufaclub Посмотреть профиль Найти все сообщения от ufaclub
 
Регистрация: 27.11.2010
Сообщений: 201

Не на сервере потому что придется много где внедрять, а тут заменил для пользователя и все готово, спасибо кстати за помощь.
Ответить с цитированием
  #5 (permalink)  
Старый 12.11.2014, 15:24
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,491

рони, firstChild может и не быть, потому я решил не рисковать.)
А вообще, если не выёбываться со скоростью и прочей "маловажной" фигнёй, то так:
<span class="price">101 200 <span class="currency">руб</span></span>
<span class="price">0 <span class="currency">руб</span></span>
<span class="price">500 100 <span class="currency">руб</span></span>
<span class="price">10 899 <span class="currency">руб</span></span>
<span class="price">23 200 <span class="currency">руб</span></span>
<span class="price">13 213 <span class="currency">руб</span></span>
 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<script>
  $('span.price').filter( function(){
    return $(this).text() == '0 руб'
  }).css('color','red')
</script>
__________________
29375, 35
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставить "ЧТО ТО" в середину текста 123456 Events/DOM/Window 15 09.10.2014 00:16
Нужен хитрый селектор NikZ jQuery 6 16.07.2013 19:55
Как запретить отмену выделения текста от клика мышью? Маэстро Internet Explorer 0 03.04.2012 21:21
Чудеса математики js при padding borovik Элементы интерфейса 6 09.07.2011 22:02
Получение позиции текста по координатам traa Events/DOM/Window 20 08.02.2011 14:19