2

モバイル訪問者のメインナビゲーションとして使用される選択リストがあります。構造は次のとおりです。

<select id="nav">
<option value="http://somesite.com/url_1">Page 1</option>
<option value="http://somesite.com/url_2">Page 2</option>
<option value="http://somesite.com/url_3">Page 3</option>
<option value="http://somesite.com/url_4">Page 4</option>
</select>

現在のページのURLを選択リストのURLと照合し、一致する場合はそれを選択したオプションとして設定するにはどうすればよいですか?私はそれがこのようなものになるだろうと推測しています:

var url = window.location;
$("#nav option").each(function() {
    var value = $(this).val();
    if(url === value) {
        $(this).val('selected','selected');
    };
});
4

3 に答える 3

2

selectedpropはプロパティであり、新しい値を設定し、メソッドを使用できますfilter

var url = window.location.href;
$("#nav option").filter(function() {
    return this.value === url;
}).prop('selected', true);

属性セレクターを使用することもできますが、filterメソッドの方が効率的です。

于 2013-01-19T21:11:53.477 に答える
1

変更する必要があります

$(this).val('selected','selected');

の中へ

$(this).prop('selected',true);

最後に(オプション1)

$("#nav option").each(function() {
    if(window.location === $(this).val()) {
        $(this).val('selected','selected');
    };
});

またはより簡単(オプション2)

$("#nav option[value='" + document.location + "']").prop("selected", true);
于 2013-01-19T21:11:51.550 に答える
1

あなたはjQuery属性セレクターでそれを行うことができます:

$("#nav option[value='" + window.location + "']").prop('selected', true);
于 2013-01-19T21:13:17.810 に答える