【问题标题】:Replace text with dots用点替换文本
【发布时间】:2014-05-10 12:18:07
【问题描述】:

当我用点替换文本时,我有这个小提琴:

http://jsfiddle.net/k5VET/1750/

var p=$('#fos');
var divh=$('#fos').height();
while (p[0].scrollHeight>divh) {
    p.text(function (index, text) {
        return text.replace(/\W*\s(\S)*$/, '...');
    });
}

它的工作,但是:

当我在我的网站中准确复制此代码时,我在控制台中收到此错误:

TypeError: p[0] is undefined        

while (p[0].scrollHeight>divh) {

有人可以向我解释为什么 fiddle 可以工作,但在服务器上却不行吗?

您好!

【问题讨论】:

  • 您的页面上有 id fosElement 吗?
  • 将您的代码包装在准备好的文档中或将您的代码放在页面底部。
  • 我没有带有“id fos”的元素,代码在“文档准备就绪”中并且已经在页面底部
  • 试试console.log(p.length) 看看你在控制台中得到了什么。您的代码应该是 1 才能工作。
  • var p=$('#fos'); 表示使用 jQuery 查找所有带有id=fos 的元素并调用此pid 应该是唯一的),所以没有这样的元素,就没有p[0],因此你会得到错误

标签: javascript jquery text replace


【解决方案1】:

i have no element with "id fos"...

这就是你的答案。 var p 未定义,因为它没有可供选择的内容。这就是为什么它在索引零处没有元素的原因。

找到你要转换的文本的位置,并为它分配p(或改变它的id):

var p = $('#myTextId');

【讨论】:

    猜你喜欢
    • 2018-12-04
    • 2010-12-02
    • 1970-01-01
    • 2019-07-25
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 2019-04-12
    • 2017-10-23
    相关资源
    最近更新 更多