2015-08-28 2 views
0

Это мой JS:текст исчезать на основе содержимого элемента

if($('.js-documentBox').length){ 
    $('.js-documentBox').each(function(){ 
     if($(this).text().length > 20){ 
      $(this).addClass('test-class'); 
     } 
    }); 
} 

Это мой HTML:

<span class="js-documentBox">6227_150510_0510175608II</span> 

Итак, первый я проверить, существует ли элемент с '.js-documentBox' а затем для каждого найденного элемента я проверяю, содержит ли его содержимое более 20 символов, если это правда, я добавляю «test-class». Проблема заключается в том, чем в тест-классе я хочу CSS, который сделает такой же эффект, как этот код:

overflow: hidden; 
text-overflow: ellipsis; 

Любые предложения, как получить тот же эффект?

ответ

1

Просто добавьте display:inline-block; в тест-класс:

.test-class { 
    overflow: hidden; 
    text-overflow: ellipsis; 
    display:inline-block; 
    width:150px; 
} 

EDIT:

Просто попробовал - вы также должны использовать width иначе вы не увидите эффект

Heres мой fiddle LINK

+0

http://fiddle.jshell.net/onxLuhwj/ как исправить эту проблему выравнивания, элементы имеют разную высоту – fishera

+1

add float: left; на тест-класс - я обновил вашу скрипку. [ссылка] (http://fiddle.jshell.net/onxLuhwj/1/) – Chris

1

text-overflow относится только к элементам уровня блока (по умолчанию они являются встроенными), поэтому вам нужно либо сделать пролеты в divs (или другой элемент уровня блока), либо изменить его стиль, чтобы включить что-то вроде display:block.

+0

Можете ли вы показать мне, как это сделать в скрипке? – fishera

+0

Если вы публикуете скрипку, демонстрирующую, что у вас есть сейчас, я могу изменить ее, чтобы показать вам, что менять. – j08691

+0

http://fiddle.jshell.net/onxLuhwj/ теперь у меня проблема выравнивания – fishera

Смежные вопросы