Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   jquery скрипт дописывает лишнего (https://javascript.ru/forum/misc/21286-jquery-skript-dopisyvaet-lishnego.html)

SunYang 03.09.2011 21:20

jquery скрипт дописывает лишнего
 
Не пойму в чем дело.
Скриптина должна вроде дописывать "руб" и "%", если содержимое 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>


Блоки в которые дописывается:
<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>


и...

<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>


в чем может быть проблема?

melky 03.09.2011 21:34

jQuery(".price_block1").text()

вернёт текст первого элемента. в эотм то и проблема

я бы сделал так

$(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>");  
    });    
});

nikita.mmf 05.09.2011 16:02

Я бы сделал так
jQuery(function($){
    $(".price_block1, .thisprise, .ald_price, .aldprice").not(":empty").append("<small> руб</small>");  
    $(".sale_block1, .sale").not(":empty").append("<small> %</small>"); 
});

devote 05.09.2011 22:24

А я бы сделал.... эм.... (думаю)... а все просто ctrl+a -> del и все :D

popov654 06.09.2011 00:59

Это типа камень в огород ТС? :lol:


Часовой пояс GMT +3, время: 18:04.