在定位 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;
});
我想在#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;
});