我需要在网页中找到最大的数字(这不是我的网页)。 我需要javascript吗?
首先,我需要从所有 SPAN.f 元素中获取值。然后,我必须将数字与它们进行比较以找出最大值。 怎么样?
假设我从所有 SPAN.f 元素中获得220 - 340 - 480 × 360 - 25/7/2012
。
我需要突出显示480
,但我不希望/2012
突出显示,因为它是日期的一部分。我的意思是,我想突出显示480
,而不是/2012
。
我使用GreaseMonkey和Firefox Nightly 22
这是脚本,但它对我不起作用:
// ==UserScript==
// @name MAX NUMBER in page
// @include https://www.google.com/search*
// @version 1
// @grant none
// ==/UserScript==
var spans = document.querySelectorAll("SPAN.f");
var max = -Infinity;
var maxSpan;
Array.prototype.forEach.call(spans, function(span) {
var val = Number(span.textContent);
if (max < val)
{
max = val;
maxSpan = span;
}
});
if (maxSpan) maxSpan.style.backgroundColor = "yellow";
答案 0 :(得分:1)
24/Dec/1789
不是有效数字,但应该是字符串,其他是数字,你可以做
var biggest = Math.max(100, 220, 340);
如果你得到的是一个字符串,你可以做
var str = '100 - 220 - 340 - 24/Dec/1789';
var biggest = Math.max.apply(null, str.split('-').filter(function(x) {
return !isNaN(x);
}));
答案 1 :(得分:0)
我想你的意思是找到包含SPAN
类的f
元素中包含的最大数字(这就是语法SPAN.f
所代表的含义)。
如果是这样,您不需要正则表达式,甚至不需要对值进行排序。只需在每个值上迭代一次即可找到最小值。
像这样:
var spans = document.querySelectorAll("SPAN.f");
var max = -Infinity;
var maxSpan;
Array.prototype.forEach.call(spans, function(span) {
var val = Number(span.textContent);
if (max < val)
{
max = val;
maxSpan = span;
}
});
if (maxSpan) maxSpan.style.backgroundColor = "yellow";