【发布时间】:2011-05-23 10:05:00
【问题描述】:
我正在尝试定义一个 JQuery 语句来查找具有大于(或分别小于)font-size 比输入值的元素。
可能的输入值:
"12px"
"14pt"
"120%"
and so on...
我的第一种方法更像是草稿,因为它不能以这种方式工作。但也许你有如何实现解决方案的想法。这是我到目前为止所拥有的(输入值来自其他地方并且是可变的):
$('*').filter(function() {
return $(this).css('font-size') > '12px';
})
有人吗?
更新
我被要求解释为什么我需要这样的东西。我正在使用 Java 中的 Selenium2 编写一个 API,它能够以更简单、更可靠的方式查找元素并与它们进行交互。这个函数将允许我编写像browser.find().titleElements() 这样的代码,它可以选择所有h1、h2、...标签,还可以选择字体大小大于页面上平均文本的元素。
该框架还将提供选择在视觉上彼此靠近或在特定方向上的元素的功能:
HtmlElement nameLabel = browser.find().labelElement("name");
HtmlElement nameInput = browser.find().closestInputElement(nameLabel);
nameInput.below("tos").select();
【问题讨论】:
-
相对字体大小会非常棘手。 Crescent Fresh 对此问题的回应:stackoverflow.com/questions/1313995/… 详细说明了 jQuery 如何始终返回字体大小的像素值。因此,使用 jQuery,我认为您需要一种方法将您的 pt、em、pct 等输入类型转换为像素,这是我无法想象的。正如那个答案所指出的那样,可能有一种仅限 IE、非 jQuery 的方式来做到这一点。
标签: jquery css jquery-selectors filter