0

编辑值时,我必须更改 jQuery UI Select 的字体颜色。DOM 看起来像这样:

<dd>
    <select class="filter large" name="xx" style="display: none;">
        <option value="0">--</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3" selected="selected">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
    </select>
    <a class="ui-selectmenu ui-widget ui-state-default ui-corner-all ui-selectmenu-dropdown" id="undefined-button" role="button" href="#" aria-haspopup="true" aria-owns="undefined-menu" style="width: 161px;">
    <span class="ui-selectmenu-status">3</span>
    <span class="ui-selectmenu-icon ui-icon ui-icon-triangle-1-s"></span></a>
</dd>

这是我的 Jquery 代码:

$('select').change(function() {
  $('span.ui-selectmenu-status').css("color","red");
});

哪个有效,但它正在改变所有的选择框,因为我不知道如何改变编辑选择的颜色?

4

4 回答 4

3

在简单的jQuery中,这有效

$('select').change(function() {
    $(this).find('option:selected').css('background-color', 'red');
});
于 2013-04-26T06:18:27.150 回答
1

由于这里还没有正确的答案:

这个:

$('select').change(function() {
    $('span.ui-selectmenu-status').css("color","red");
});

应该:

$('select').change(function() {
    $(this).parent().find('span.ui-selectmenu-status').css("color","red");
});

这利用遍历.parent().find()

于 2013-04-26T07:08:11.333 回答
0

如果您只想更改选择框的兄弟姐妹的颜色,您应该使用它

$('select').change(function(){
  $(this).find('span.ui-selectmenu-status').css('color','red');
})

但是如果你想改变一些特定复选框的颜色,你应该给它们添加一个类

 $('.boxes').change(function(){
      $(this).find('span.ui-selectmenu-status').css('color','red');
    })

编辑:这个有效

    $('select').change(function(){
       $('body').find('span.ui-selectmenu-status').css('color','red');
    })

这将在 body 元素中查找任何具有类 ui-selectmenu-status 的 span,这就是 find 的工作方式。

或者你可以这样做

        $('select').change(function(){
           $('span.ui-selectmenu-status').css('color','red');
        })
于 2013-04-26T06:33:14.143 回答
0

解决方案:

$(this).next('a').find('span.ui-selectmenu-status').css('color','red');

于 2013-04-26T07:06:54.023 回答