Javascript jQuery`.attr()`不是函数
我正在尝试使用jQuery获取特定选项标记的值 这是我的HTML:Javascript jQuery`.attr()`不是函数,javascript,jquery,Javascript,Jquery,我正在尝试使用jQuery获取特定选项标记的值 这是我的HTML: <select name="modele" class="wyszselect" onchange="przenies(this[this.selectedIndex].value);"> <option value="0">Choose model</option> <option value="242">242</option> <optio
<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>
我得到了这个错误:
未捕获类型错误:oneOption.attr不是函数
将
oneOption
转换为jQuery
对象,如下所示
$("option").each(function (index, oneOption) {
options.push($(oneOption).attr("value"))
});
在jquery()中使用map()
,并使用此对象获取选项值
options = $("option").map(function (index, oneOption) {
return this.value;
}).get().join(',');
或在每个()中
可能需要将其转换为jQuery元素:
$("option").each(function (index, oneOption) {
options.push($(oneOption).attr("value"))
});
每个函数将传递
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(',');
oneOption
是一个dom对象,.attr()
是一个jquery函数。您可以使用oneOption.value
@RazvanDumitru您的意思是做console.log(map(options))?@Adil否我的意思是控制台应该打印如下内容:optinos=[“value1”、“value2”、“value3”、“value4”…]
如何以逗号分隔的形式获得结果?join()您的更新为我提供了此结果0242243244246320324328,33
,而我希望此结果:[“值”、“值”、“值”…]
$("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(',');