jquery не пашет.html() в ие

Такая строчка никак не хочет работать в ие 8,9 помогите плизз

JS

$('.rigth_text').find('span').each(function ()
{
$('#razd'+i+'').html($('#razd'+i+'').html()+'<div> '+$(this).html().substr(0, max_str)+'...<a href="#" class="link_more">Далее</a></div>');
}
 

HTML

<div class="rigth_text">
<span> text1</span>
<span> text2</span>
<span> text3</span>
<span> text4</span>
<div>
 

Вот мне надо чебы скрипт вытащил текст из span обрезал и пихнул обратно, но в div-ах

выводит только первый текст, а потом, много ссылок далее.
причем $(this).html() содержит текст везде(проверял алертом)

1 ответов


Вот [http://jsfiddle.net/dCHfb/ ] написал наглядный пример с использованием функции .replaceWith()

имеем:


<div class="right_text">
    <span>text 1</span>
    <span>text 2</span>
    <span>text 3</span>
    <span>text 4</span>
    <div>text 5 completed</div>
</div>
 
выполняем:

$('.right_text span').each(function(i,el){
    var _text = $(this).text();
    $(this).replaceWith('<div>'+_text+'</div>');
});
 
получаем:

<div class="right_text">
    <div>text 1</div>
    <div>text 2</div>
    <div>text 3</div>
    <div>text 4</div>
    <div>text 5 completed</div>
</div>
 

Проблема, видимо, в том, что вы не передаете переменную i в вашу функцию .each()


во-первых вместо


$('#razd'+i+'').html($('#razd'+i+'').html()+'<div> '+$(this).html().substr(0, max_str)+'...<a href="#" class="link_more">Далее</a></div>');
 
надо:

$('#razd'+i+'').append('<div> '+$(this).html().substr(0, max_str)+'...<a href="#" class="link_more">Далее</a></div>');
 

во-вторых скорее всего вместо #razd+i логичнее было бы делать $(class_selector).eq(i), если у вас список этих razd