使用jQuery获取选择列表的值

时间:2010-01-06 14:39:52

标签: jquery select firefox-addon firefox-addon-sdk

这是我在Firefox Jetpack中使用jQuery时遇到的问题。在我的Jetpack代码中,我正在动态创建一些带有选项及其选项的SELECT框 各自的价值观:

...
listOfWords[i] = "<select id=clozefox_answer> <option
value=wrongAnswer>distractor</option>"
listOfWords[i] += "<option value=trueAnswer>" + currentWord +
"</option></select>"
...
textStr = listOfWords.join(" ");
$(this).html(textStr);

这很好用。现在,在用户使用页面上的下拉选择列表进行一些选择并点击Calculate Score按钮后,我运行一个函数来遍历SELECT框并获取他们选择的值:

$(doc).find("select[id=clozefox_answer]").each(function (index) {
   var selectedValue = $(this).val();

   if (selectedValue == "trueAnswer") {
       numCorrectAnswer++;
   }
});

即使上面的代码与我动态创建的SELECT正确匹配,$(this).val()也不会返回选项值,而是返回选项文本(例如“distractor”或包含变量 currentWord 的内容)。如何获得选项值(例如“trueAnswer”或“wrongAnswer”)?

2 个答案:

答案 0 :(得分:1)

尝试在所有HTML属性周围加上引号,这是标准做法。

另外,在find选择器中,您应该在clozefox_answerid['id'='clozefox_answer']

周围加上引号

如果这不起作用,请尝试通过调用$( this ).attr( 'value' );

来获取值

答案 1 :(得分:0)

以下代码符合我的期望:

var selectedValue = $(this).attr("value");

但我仍然不知道为什么

var selectedValue = $(this).val();

无法按预期工作。无论如何,我现在已经解决了我的问题。