如果我循环浏览一些select
下拉列表的jquery对象,如何使用jquery的$(this)
来获取所选选项的类?
elems.each(function(idx, elem) {
if ($(this).is('select')){
console.log($(this, "option:selected"))
}
});
似乎不起作用。
答案 0 :(得分:5)
elems.each(function(idx, elem) {
var ref = $(this); // caching $(this)
if( ref.is('select') ) {
console.log( ref.find('option:selected') );
// OR in jQuery Context format
console.log( $('option:selected', ref) ); // this format internally
// called .find() method
// to get the class
console.log( ref.find('option:selected').attr('class') );
}
});
答案 1 :(得分:3)
除了您传递参数的顺序不正确之外,您几乎就在那里。见下文,
elems.each(function(idx, elem) {
if ($(elem).is('select')){
console.log($("option:selected", elem));
}
});
$("option:selected", this)
,其中第一个参数是选择器,第二个参数是上下文。
注意: .each
第二个参数是元素本身,因此您可以使用elem
代替this
答案 2 :(得分:2)
如何获取所选选项的类
if ($(this).is('select')){
console.log($(this).find("option:selected").attr("class"));
}
答案 3 :(得分:-1)
您是否尝试过hasClass
功能?
elems.each(function(idx, elem) {
if ($(this).hasClass('select')){
console.log($(this, "option:selected"))
}
});
进一步观察,我认为如果添加.
类标识符,原始方法也会起作用
elems.each(function(idx, elem) {
if ($(this).is('.select')){
console.log($(this, "option:selected"))
}
});