2

我有一个简单的函数,它获取 div 的原始文本,并在用户调整窗口大小(响应式站点)时更改此文本。当用户再次放大窗口时,必须显示原始文本。这很简单,但我有一个小问题。

function limitH2Text() {
        var origText = $(".result .right .mask").text();
        var width = $(window).width();
        if (width < 811) {
            $(".result .right .mask").each(function () {
                var $this = $(this);
                $this.text($this.text().slice(0, 75));
                $this.append('...').show();
            });
        } else {
            $(".result .right .mask").each(function () {
                $(this).text(origText);
            });
        }
    }

控制台显示 var origText 包含三个 [.result .right .mask] div 的文本。你看,HTML 是 [.result .right .mask] 的重复。所以代替(例如)'你好,这是文本',它显示'你好,这是文本你好,这是文本你好,这是文本'。当用户调整大小时,它会呈指数增长,因此浏览器会崩溃。我不知道如何只存储一个 div 的文本?

谢谢您的帮助!

4

2 回答 2

1

尝试使用.eq()

var origText = $(".result .right .mask").eq(0).text();

这会将匹配的元素集减少到指定索引处的元素,并存储那个 div 的文本。

于 2013-04-19T08:41:26.643 回答
0

您可以将原始文本存储在其 data-origText 属性中

function limitH2Text() {
        var origText = $(".result .right .mask").text();
         $(this).attr( "data-origText", origText  );
        var width = $(window).width();
        if (width < 811) {
            $(".result .right .mask").each(function () {
                var $this = $(this);
                $this.text($this.text().slice(0, 75));
                $this.append('...').show();
            });
        } else {
            $(".result .right .mask").each(function () {
                $(this).text( $(this).attr( "data-origText" ) );
            });
        }
    }
于 2013-04-19T08:40:58.503 回答