2015-11-11 37 views
0

我得到正确的substr()方法值,但我无法获得原始值。请让我知道如何获得原始价值。例如如何获取substr值作为原始值?

ex)“AAAAAA” - > AA ...但我不能回AA ... - > AAAAAA。

这是我的示例代码。

if ($(window).scrollTop() > 100) { 
    var name= $('#aaa').text(); 
    var ellipses = name.substr(0, 9) + '...'; 
    document.getElementById('aaa').innerHTML = ellipses; 
} else { 
    //scrollTop() < 99 //I would like back the original value. 
} 
+1

什么样的返回值?这也很难阅读,也许你想给我们更多的信息,你想达到什么? – Pogrindis

回答

4

为什么你会认为原始值在擦除后会在那里?一旦你覆盖了一个元素的文本内容,它就消失了。

您需要先保存在某个地方的原始值,这里有一个想法:

$('#aaa').data('origValue', $('#aaa').text()); 
if ($(window).scrollTop() > 100) { 
    var name = $('#aaa').text(); 
    var ellipses = name.substr(0, 9) + '...'; 
    document.getElementById('aaa').innerHTML = ellipses; 
} else { 
    //scrollTop() < 99 //I would like back the default value. 
    $('#aaa').text($('#aaa').data('origValue')); 
} 

本例使用HTML5数据 - *属性保存原来的文本,然后当你滚动备份后阅读。正如我所说,只是一个想法,有很多其他方式来存储文本的地方,但你必须存储它


这里是你可能想实现一个例子:

$('#aaa').data('origValue', $('#aaa').text()); 
 

 
$(window).scroll(function(){ 
 
    if ($(window).scrollTop() > 100) { 
 
    var name = $('#aaa').text(); 
 
    var ellipses = name.substr(0, 9) + '...'; 
 
    document.getElementById('aaa').innerHTML = ellipses; 
 
    } else { 
 
    //scrollTop() < 99 //I would like back the default value. 
 
    $('#aaa').text($('#aaa').data('origValue')); 
 
    } 
 
});
div {padding: 120px 0; min-height: 300px;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="aaa">Some super-mega-long text here! Try scrolling...</div>

+0

谢谢,它工作的很棒! – siuri

+0

不客气,我很高兴能帮到你! – Shomz

3

而对方的回答是完全正确的,你可以在一些地方保存价值。

另一种方法是使用css简单截断view中的项目。

css类,如:

.truncate { 
    width: 35px; 
    white-space: nowrap; 
    overflow: hidden; 
    text-overflow: ellipsis; 
} 

当需要滚动这可应用于:

$('#aaa').addClass("truncate"); 

然后,当滚动> 100:

$('#aaa').removeClass("truncate"); 

这样该值不被操纵,只是用户查看。此外,可以稍后添加转场以使物体更漂亮。

这又是一个其他的解决方案!

+1

可爱,来自我的+1! – Shomz

+0

谢谢,但我只需要JS – siuri