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

啊……对不起。我发现了为什么事情不起作用。正如彼得威尔金森所说,这是我引入的一个错误。

在尝试获取索引之前,我将索引设置为 2,(菜鸟错误!!)将索引设置为超出范围的索引。这就是为什么我一直将 -1 作为索引。

JQuery 或 selectedIndex 或我尝试过的任何方法都没有问题+我应该进一步调试。

于 2012-11-02T17:01:34.530 回答
0

尝试

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