3

我正在创建一个书签,它使用正则表达式从页面(比如亚马逊)中提取价格,我希望能够提取有关每个价格的字体大小的附加信息,作为对其重要性进行排名的一种方式。

下面是我生成的代码,它与我正在寻找的内容接近。match() 创建一个价格数组, :contains 返回并重新搜索找到的每个价格的字体大小。但是,如果相同的价格出现两次,这将是一个问题。

我正在寻找一种方法来一步完成。任何意见,将不胜感激。

var prices = jQuery('body').text().match(/[\$€£]\s*(?:\d[\d,]*(?:\.\d+)?)/g);
    jQuery.each(prices, function() {
        var size = parseInt(jQuery(":contains('" + this + "')").css('fontSize'));
    });
4

1 回答 1

2

您必须遍历容器元素的结果

var prices = jQuery('body').text().match(/[\$€£]\s*(?:\d[\d,]*(?:\.\d+)?)/g);
var results = [];
jQuery.each(prices, function() {
    var price = this;
    results[ price ] = [];
    jQuery(":contains('" + this + "')").each( function() {
        var size = parseInt( $( this ).css( 'fontSize' ), 10 );
        results[ price ].push( size );
    } );
});

results现在是一个数组,其中以价格为键,所有相应的字体大小作为键的值

于 2012-12-22T10:07:17.563 回答