javascript - jQuery、bug 还是什么? selectmenu 小部件的 addClass 仅适用于第一个元素

标签 javascript jquery jquery-ui

我试图弄清楚这是一个错误还是我做错了什么: 将新类添加到选择菜单小部件的选择器

$(".select-cls").selectmenu()
   .selectmenu( "widget" ).addClass("red-cls");

仅选择第一个。

还尝试了像这样的单独选择器:

$(".select-cls").selectmenu("widget").addClass("red-cls");

得到相同的结果

fiddle

也许还有另一种方法可以为每个小部件添加类?

最佳答案

下面的代码等待 DOM 准备好。那可能不需要。某些 jquery 方法仅适用于一个元素。此代码循环遍历所有组件并添加类。

var selects = $(".select-cls").selectmenu({
  width: 75
});

// ready
$(function() {
  $.each(selects, function(i, element) {
    $(element).selectmenu('widget').addClass('red-cls');
  });
});

http://jsfiddle.net/9qkvfm1n/10/

这不是一个错误。 API 表示它返回单个 jQuery 元素。

您也可以仅使用 CSS 来完成此操作:

.select-cls + .ui-selectmenu-button {
  color: red;
}

使用Adjacent sibling selectors

关于javascript - jQuery、bug 还是什么? selectmenu 小部件的 addClass 仅适用于第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34202963/

相关文章:

jquery - 带有各种 jquery 铃声和口哨的搜索页面

javascript - 如何将此表中的数据作为列表提交到 asp.net mvc 中的操作?

javascript - 单击添加按钮时自动日期

javascript - jquery 在滚动时固定 div 弹跳

javascript - 我是否正确地履行了这些 promise ?

javascript - 滚动前 CSS 不同于滚动后

javascript - Grails单选按钮显示带有onclick的隐藏div

html - jQuery Accordion 高度与内容冲突

jquery - 通过 jquery 将 div 从其他 div 后面滑动

javascript - 如何使用 javascript 获取元素形式值的数组?