我正在尝试使用jQuery获取特定选项标记的值。
这是我的HTML:
<select name="modele" class="wyszselect" onchange="przenies(this[this.selectedIndex].value);">
<option value="0">Choose model</option>
<option value="242">242</option>
<option value="243">243</option>
<option value="244">244</option>
<option value="246">246</option>
<option value="320">320</option>
<option value="324">324</option>
<option value="328">328</option>
<option value="33">33</option>
</select>
这是我的jQuery代码:
$(document).ready(function () {
var options = [];
$("option").each(function (index, oneOption) {
options.push(oneOption.attr("value"))
});
console.log(options);
});
我收到了这个错误:
未捕获的TypeError:oneOption.attr不是函数
答案 0 :(得分:3)
Conver oneOption
到jQuery
对象,就像这样
$("option").each(function (index, oneOption) {
options.push($(oneOption).attr("value"))
});
答案 1 :(得分:3)
每个函数都将传递DOM
对象而不是jQuery
对象。转换为jQuery对象或使用DOM对象,如options.push(oneOption.value)
,这将更快,然后将DOM对象转换为jQuery对象,然后调用attr
来获取值。您也可以使用this.value
$("option").each(function (index, oneOption) {
//options.push($(oneOption).attr("value"));
options.push(oneOption.value);
//options.push(this.value);
});
获取逗号分隔值
$("option").map(function(){
return this.value;
}).get().join(',');
答案 2 :(得分:1)
在jquery()中使用map()
,并使用此对象获取选项值
options = $("option").map(function (index, oneOption) {
return this.value;
}).get().join(',');
<强> DEMO 强>
或每个()
options =[];
$("option").each(function (index, oneOption) {
options.push(this.value);
})
答案 3 :(得分:0)
您需要转换为jQuery元素。
$("option").each(function (index, oneOption) {
options.push($(oneOption).attr("value"))
});