3

正規表現を使用してページ (Amazon など) から価格を取得するブックマークレットを作成しています。重要性をランク付けする方法として、取得される各価格のフォントサイズに関する追加情報を取得できるようにしたいと考えています。

以下は、私が探しているものに近い、私が生成したコードです。match() は価格の配列を作成し、:contains は戻ってフォントサイズの見つかった各価格を再検索します。ただし、同じ価格が 2 回表示されると問題になります。

ワンステップですべてを行う方法を探しています。アドバイスをいただければ幸いです。

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 に答える