[Jquery] Скрипт дописывает лишнего

boool

Создатель
Регистрация
27 Авг 2011
Сообщения
24
Реакции
0
Не пойму в чем дело.
Скриптина должна вроде дописывать "руб" и "%", если содержимое html контейнера не пустое, но даже если оно пустое, скрипт все равно дописывает эти "руб" и "%". Вот здесь:

Самое интересное, что на чистом html скрипт работает как надо. Может какой другой скрипт подключенный мешает?

вот сам скрипт дописывания:
Код:
<script type="text/javascript">
// для верхнего слайда

$(document).ready(function(){
var htmlStr1 = jQuery(".thisprise").text();
var htmlStr2 = jQuery(".aldprice").text();
var htmlStr3 = jQuery(".sale").text();
if(htmlStr1 != "" ) {jQuery(".thisprise").append("<small> руб</small>");}
if(htmlStr2 != "") {jQuery(".aldprice").append("<small> руб</small>");}
if(htmlStr3 != "") {jQuery(".sale").append("<small> %</small>");}


// для блоков
var htmlStr1 = jQuery(".price_block1").text();
var htmlStr2 = jQuery(".ald_price").text();
var htmlStr3 = jQuery(".sale_block1").text();
if(htmlStr1 != "" ) {jQuery(".price_block1").append("<small> руб</small>");}
if(htmlStr2 != "") {jQuery(".ald_price").append("<small> руб</small>");}
if(htmlStr3 != "") {jQuery(".sale_block1").append("<small> %</small>");}
});
</script>

Блоки в которые дописывается:
HTML:
<li>
        <img src="images/slider_p.jpg" class=" " alt="gallery-1" title="gallery-1" />
            <div>
            <strong class="thisprise">5600</strong>
            <strong class="aldprice">7000</strong>
            <strong class="sale"></strong>
            <strong class="style2">Офигенный черный мужской пиджак и тонкий галстук</strong>
            <a href="#" class="b_more">Туда ></a> </div>
        </li>

и...
HTML:
<div class="timeblock">
<div class="price_block1">890</div>
<div class="ald_price"></div>
<div class="sale_block1">-50</div>
  <a href="#"><span>Посмотреть</span></a>
  </div>

в чем может быть проблема?
 
Вообще скрипт работает нормально. Тут может быть ситуация, что движок, формирующий эту HTML-страницу вместо "" ставит, например, "пробел", и т.о. условие выполняется, и добавляются знаки:
Код:
if(htmlStr2 != "") {jQuery(".aldprice").append("<small> руб</small>");}
Посмотрите в "просмотре НTML кода страницы", что там действительно в рабочем, а не лабораторном варианте, содержит контейнер.Сам не нашел, потому что ссылка не рабочая.
 
не, двиг лишнего не дописывает.
решил использованием .each()

Вот так все заработало:
Код:
$(document).ready(function(){
    jQuery(".price_block1, .thisprise, .ald_price, .aldprice").each(function(i, elem){
        elem = $(elem);
        if( elem.text() !== "" ) elem.append("<small> руб</small>");  
    });
    jQuery(".sale_block1, .sale").each(function(i, elem){
        elem = $(elem);
        if( elem.text() !== "" ) elem.append("<small> %</small>");  
    });    
});
 
Назад
Сверху