2013-02-18 4 views
0

Я загружаю контент со страницы с загрузкой jquery, я пытаюсь ограничить количество символов, которые он разрешает в div, моя функция работает, но только иногда я не знаю почему.jquery limit number of characters from .load

$('#violin_1_title').load('http://www.klossal.com/klossviolins/inventory.html .violin:first .about .about_txt .about_summary h3:eq(1)', function() { 

    $(".txt_limit").text($(this).text().substr(0, 450)+'...'); 

}); 

ответ

0

Результат, который вы получаете как ответ от сервера, будет HTML. Таким образом, в этом случае вам нужно получить полный контент, а затем преобразовать его в вывод текста/HTML и получить результат, необходимый для применения подстроки.

$('#violin_1_title').load('http://www.klossal.com/klossviolins/inventory.html .violin:first .about .about_txt .about_summary h3:eq(1)', function(data) { 

    $(".txt_limit").text(data.substr(0, 450)+'...'); 

}); 

Если вы хороши в делать с помощью CSS, если это одна линия вещь, вы можете сделать так:

.txt_limit { 
    white-space: nowrap; 
    overflow: hidden; 
    text-overflow: ellipsis; 
} 
+0

мой плохой, это делает работу, но она имеет те же проблемы, выше, он публикует буквально всю страницу, он больше не загружается как фрагмент. – loriensleafs

+0

См. Вторую реализацию. –

1

Try с

$('#violin_1_title').load('http://www.klossal.com/klossviolins/inventory.html .violin:first .about .about_txt .about_summary h3:eq(1)', function(response) { 

    $(".txt_limit").text(response.substr(0, 450)+'...'); 

}); 

Это использует параметр в функции обратного вызова, которая имеет данные ответа от сервера.

+0

, поэтому, когда я это делаю, он больше не загружает фрагмент, он буквально загружает всю страницу. – loriensleafs

+0

ограничение работает правильно, а не загрузка контента – loriensleafs

0

Я считаю, что .txt_limit динамически загружается элемент, то вы должны .find() его в существующем родителю:

$('#violin_1_title').find(".txt_limit").text().substr(0, 450)+'...'; 

или это:

$(".txt_limit","#violin_1_title").text().substr(0, 450)+'...';