0

私はmivaシステム内で作業しているので、悪夢と言えます。私は私が使用しなければならない次のコードを持っています

<select name="ShippingMethod">
<option value="mvfedexsoap:FEDEX_2_DAY">FedEx 2Day® ($15.91)</option>
<option value="mvfedexsoap:GROUND_HOME_DELIVERY">FedEx Home Delivery® ($13.36)</option>
<option value="mvfedexsoap:PRIORITY_OVERNIGHT">FedEx Priority Overnight® ($20.15)</option>
<option value="mvfedexsoap:STANDARD_OVERNIGHT">FedEx Standard Overnight® ($18.41)</option>
</select>

このストア内の私の唯一のオプションは、jqueryを使用することです。私はjqueryにかなり慣れていないので、あなたが喜んで私に与えてくれる助けをいただければ幸いです。

ページの読み込み時に、最も安価なオプションを選択するようにします。私が考えていた方法は、オプション内のテキストを何らかの方法で収集し、価格を解析してから、比較して最低値を選択することでした。あなたが助けになるかもしれない何かを持っているならば、私は前もってあなたに感謝します。

4

3 に答える 3

2

このjsFiddleの例を試してください。

var idx = 0;
var lowest = 9999;
$('select[name=ShippingMethod] option').each(function(i) {
    val = parseFloat($(this).text().split('$')[1]);
    if ( val < lowest) {
        idx = i;
        lowest = val;
    }
});
$('select[name=ShippingMethod] option:eq('+idx+')').prop('selected', true);

基本的に、これはオプションのテキスト値をループし、それらを分割して浮動小数点に解析し、次に最小値を見つけてそれを選択します。

于 2012-10-05T16:09:21.820 に答える
0
$("option").each(function(index) { 
 // alert(index + ': ' + $(this).text()); 
 var text = $(this).text();//get text for each option

  var price = text.split("$");//split text at the $ symbol

  var final_price = price[1].replace(/[()]/g,'');//remove all remaining parenthesis from string



  alert(final_price);

});

私はすぐにこれをまとめて、各テキストから独自の価格を取得して、並べ替えることができるようにします。お役に立てれば

于 2012-10-05T16:30:26.653 に答える
0

を使用し.eachてそれらの厄介な回避策を使用する代わりに、3行で必要なものを達成できます;-)

ライブデモ: http: //jsfiddle.net/oscarj24/ZgEbH/

 prices = $("select[name=ShippingMethod] option").map(function(){ return parseFloat($(this).text().split('$')[1]); }).get();
 lowPrice = Math.min.apply(Math, prices);
 $("select[name=ShippingMethod] option:contains('" + lowPrice + "')").prop("selected", true);
于 2012-10-05T16:49:15.663 に答える