在定位 DOM 个元素时,在 jQuery 中合并 find/filter 函数

Combine find/filter function in jQuery while locating DOM elements

我想在#Grid 中找到所有元素,然后在第一个 "TR" 标记中,它们应该具有属性 role="row" 和属性 role="columnheader"。 我知道了,它工作正常。 示例:

var elements = $("#Grid").find("tr").attr("role","row").first().find("th").attr("role", "columnheader");

我想做的是只过滤满足条件的元素:offsetWidth < scrollWidth

我试过如下,但这是不正确的结果:

var elements = $("#Grid").find("tr").attr("role", "row").first().find("th").attr("role", "columnheader");
var filtered = elements.filter(function () {
    return $(this).offsetWidth < $(this).scrollWidth;
});

我也可以使用这个功能,但我真的不知道如何在jQuery中组合它:

function isEllipsisActive(e) {
    return (e.offsetWidth < e.scrollWidth);
}

不要使用$(this),使用过滤函数中已有的元素变量

var filtered = elements.toArray().filter(function (e) {
    return e.offsetWidth < e.scrollWidth;
});

应该有效:

var filtered = elements.filter(function () {
    return this.offsetWidth < this.scrollWidth;
});