селектор точного вхождения текста
есть код на странице
<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, время: 00:44. |