单个脚本,用于在多个div中进行文本截断

时间:2014-08-19 07:07:44

标签: javascript jquery html css

这是我的previous question的延续。

Joffrey给出的答案工作正常但问题是,它在所有具有相同类名的div中加载相同的内容。

这应该对每个div独立工作。如果你查看附带的演示,你可以看到所有的div都显示与第一个div相同的内容,即使每个div有不同的内容。

以下是使用的代码

var text = $('.truncate, .truncate_another').text();
    var shortText = $.trim(text).substring(0, 50).split(" ").slice(0, -1).join(" ") + "...";
    $('.truncate, .truncate_another').text(shortText);

    $('.truncate, .truncate_another').hover(function(){
        $(this).text(text);
        $('.truncate, .truncate_another').css('z-index', '10');
        $(this).css('z-index', '100');
    }, function(){
        $(this).text(shortText);
    });

DEMO Here

1 个答案:

答案 0 :(得分:2)

如您所注意到的,将属性设置为$('.truncate, .truncate_another')的结果会影响每个匹配的项目。遍历项目以分别处理它们:

$('.truncate, .truncate_another').each(function() {
  var text = $(this).text();
  var shortText = $.trim(text).substring(0, 50).split(" ").slice(0, -1).join(" ") + "...";
  $(this).text(shortText);

  $(this).hover(function(){
    $(this).text(text);
    $('.truncate, .truncate_another').css('z-index', '10');
    $(this).css('z-index', '100');
  }, function(){
    $(this).text(shortText);
  });
});