2013-04-26 61 views
0

我必须更改jQuery UI的字体颜色编辑值时选择。该DOM看起来是这样的:jQuery:编辑值时更改表单输入的颜色

<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"); 
}); 

其中一期工程,但它一直在变化selectBoxes,因为我不知道如何只是改变了编辑的颜色选择?

+1

寻找与当前'select'用'$(这)'选择。像'$(this).siblings('。ui-selectmenu-status')'。 – elclanrs 2013-04-26 06:17:07

+0

@elclanrs,这是一个答案,而不是评论... – gdoron 2013-04-26 06:17:55

回答

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()

+0

作品谢谢! – opHASnoNAME 2013-04-26 07:11:28

3

在简单的jQuery这个作品

$('select').change(function() { 
    $(this).find('option:selected').css('background-color', 'red'); 
}); 
+0

将与“正常”选择框感谢。但不是与JQ UI选择(; – opHASnoNAME 2013-04-26 06:25:10

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'); 
    }) 

这将寻找在身体元素内具有类ui-selectmenu-status的任何跨度,这就是find方法的作用。

或者你可以做到这一点

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

我虽然你的第一个建议可以工作,但它does not。不知道为什么jQuery不选择下一个跨度 – opHASnoNAME 2013-04-26 06:37:57

+0

尝试$('select')尝试更改(功能(){ $ (this).siblings('span.ui-selectmenu-status').css('color','red'); }) – 2013-04-26 06:39:47

+0

不起作用..如果我console.log找到的对象,它会返回select元素不是跨度(; – opHASnoNAME 2013-04-26 06:43:02

0

解决方案:

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

+0

是的,这可以做到。 – SoonDead 2013-04-26 07:10:51