1

Select/Optionsタグに問題があると思います...選択したオプションにアクセスできません。

HTML部分は次のとおりです。

<select id="filter">
    <option value="value1" selected="selected" data-path="property1">option1</option>
    <option value="value2" data-path="property2">option2</option>
</select>

私はこの方法を試しました:

var property_filter = document.getElementById('filter');

そして、デバッグ中に、コンソールで、これは私が試したものです:

input:  property_filter.options
output:  [<option value=​"value1" selected=​"selected" data-path=​"property1">​option1</option>​,<option value=​"value2" data-path=​"property2">​option2​&lt;/option>​]

だから、それは正しい選択タグをつかんでいます...しかし、何かがまだ間違っています:

input:  property_filter.selectedIndex
output:  -1

同様に、JQueryセレクターを使用してこれを見つけたとき、必要なものが得られません。

input:  $('#filter').find('option')
output:  [<option value=​"value1" selected=​"selected" data-path=​"property1">​option1​&lt;/option>​, <option value=​"value2" data-path=​"property2">​option2​&lt;/option>​]

input:  $('#filter').find('option:selected')
output:  []

私は何か間違ったことをしているに違いありません...それもとても簡単な仕事です。'selected ="selected"'ではなく'selected'も使用してみましたが、同じ結果が得られました。

ちなみに、私はOS 10.6.8でChromeを使用しており、Backbone ViewとQUnitのテストのコンテキストで使用しています(ただし、問題ではありませんよね?)。また、このコードはQUnitの外部でも機能します。

4

2 に答える 2

0

試す

console.log($(this).find('#filter option:selected'));
于 2012-11-02T08:51:37.243 に答える
0

あ…ごめんなさい。なぜ物事がうまくいかなかったのかを知りました。そして、ピーター・ウィルキンソンが言ったように、それは私が紹介したバグでした。

インデックスを取得する前に、インデックスを2に設定しました(間違いありません!!)。これにより、インデックスが範囲外のインデックスに設定されます。そのため、インデックスとして-1を取得し続けました。

JQueryやselectedIndex、または私が試したメソッドのいずれにも問題はありませんでした+さらにデバッグする必要がありました。

于 2012-11-02T17:01:34.530 に答える