селектор точного вхождения текста
есть код на странице
<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 руб. Помогите пожалуйста |
Только 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> |
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> |
Не на сервере потому что придется много где внедрять, а тут заменил для пользователя и все готово, спасибо кстати за помощь.
|
рони, 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> |
Часовой пояс GMT +3, время: 14:22. |