当前位置: 首页 > 面试题库 >

使用jQuery获取特定行

闾丘卓
2023-03-14
问题内容

有没有办法使用jQuery获得块内容的第5行(第一个字母的偏移量)?

我的意思是可视线,浏览器计算的线,而不是源代码中的线。


问题答案:

jQuery.fn.line:

jQuery.fn.line = function(line) {

    var dummy = this.clone().css({
            top: -9999,
            left: -9999,
            position: 'absolute',
            width: this.width()
        }).appendTo(this.parent()),
        text = dummy.text().match(/\S+\s+/g);

    var words = text.length,
        lastTopOffset = 0,
        lineNumber = 0,
        ret = '',
        found = false;

    for (var i = 0; i < words; ++i) {

        dummy.html(
            text.slice(0,i).join('') +
            text[i].replace(/(\S)/, '$1<span/>') +
            text.slice(i+1).join('')
        );

        var topOffset = jQuery('span', dummy).offset().top;

        if (topOffset !== lastTopOffset) {
            lineNumber += 1;
        }

        lastTopOffset = topOffset;

        if (lineNumber === line) {

            found = true;
            ret += text[i];

        } else {

            if (found) {
                break;
            }

        }

    }

    dummy.remove();
    return ret;

};

用法:

$('#someParagraph').line(3); // blah blah blah

示例: http
//jsbin.com/akave

这个怎么运作:

它遍历整个元素(实际上是元素的克隆),并 <span/>在每个单词中插入一个元素。跨度的最高偏移量已缓存-
当此偏移量更改时,我们可以假定我们在新行上。



 类似资料:
  • 问题内容: 我正在使用jQuery和 此插件 从外部站点提取内容。 使用以下代码,效果很好: 但是,我真正想做的只是从目标站点中拉出一个部分(div),我知道这仅在使用该方法时才可行,而在时才可行。 然后,我找到了 这段代码 ,但是当我尝试将其构建到代码中时,它似乎不起作用,如下所示: 调查Firebug上的请求,该请求看起来确实成功,但是代码似乎无法在目标站点上找到以下标记: 我是否需要确保目标

  • 问题内容: 我正在使用Ajax访问字典REST API。 响应: 在我的测试示例中,我收到有关成功的警报。我看到的大多数Ajax示例都使用循环,但是我返回一个结果。如何从对象中提取和值? 问题答案: 如您所见,您的回应以开头,以结束。因此,您的响应是一个数组。然后,在数组内部获得对象(以开头和结尾)。所以,你是一个数组,其可与被访问:(x是指数),并且将所选对象的每个成员可以与.DOT符号来访问,

  • 问题内容: 好吧,说我有这个: 如果我想获得值“ 2”时选择“选项B”,选择器会是什么样? 请注意,这不是在询问如何获取 选定的 文本值,而是询问其中的任何一个(是否选择),具体取决于value属性。我试过了: 但这是行不通的。 问题答案: 它正在寻找ID 为且属性等于的元素。 您想要的是的孩子:

  • 问题内容: 我想要Excel中特定行的列数。那怎么可能?我使用了POI API 但是我只能得到7的列数。 我希望特定行号的列数为10。excel列不一样 问题答案: 您可以做两件事 用 要么 他们之间有很好的区别 选项1给出实际填充内容的列数(如果10列的第二列未填充,您将得到9) 选项2仅给您最后一列的索引。因此完成了“ getLastCellNum()”

  • 问题内容: 我想使用jQuery获取类名 如果它有一个ID 问题答案: 通过除其类以外的其他方式将元素作为jQuery对象获取后, 应该可以。对于ID,请使用。 如果您位于事件处理程序或其他jQuery方法中,而该元素是没有包装的纯DOM节点,则可以使用: 两者都是标准的DOM方法,并且在所有浏览器中都得到很好的支持。

  • 本文向大家介绍使用jQuery获取data-的自定义属性,包括了使用jQuery获取data-的自定义属性的使用技巧和注意事项,需要的朋友参考一下 废话少说,先上代码 通过jQuery制作组件,可以轻松获取到我们data-的自定义属性,也可以给data-属性来赋值。 获取: 赋值: