如何在选择框中循环选项

时间:2011-05-02 20:52:07

标签: jquery jquery-ui jquery-selectors

我想在选择框中循环选择属性设置为的选项 “data-status = YES”并选择此选项并以红色应用所有这些选项。我该怎么做。这个“数据状态”是通过php写的

<select id ="test1">
<option  value = "1" data-status='YES'>one</option>
<option  value = "2" data-status='NO'>2</option>
<option  value = "3" data-status='YES'>3</option>
<option  value = "4" data-status='YES'>4</option>
</select>

$(document).ready(function(){
        $('#test1 > option:selected').each(function() {
           // alert($(this).text() + ' ' + $(this).val());
           if($(this).data-status==YES"){
                $(this).css()
           }
        });

    });

如何将font-weight:bold属性应用于data-status = YES的选项 我使用.addClass(“粗体”)

添加它

6 个答案:

答案 0 :(得分:2)

我相信这就是你要找的东西

$('#test1 option').each(function() {
   // alert($(this).text() + ' ' + $(this).val());
   if($(this).data('status') == 'YES'){
        $(this).css('color','red');
   }
});

演示 http://jsfiddle.net/gaby/6N88x/


如果您还想选择多个选项,则需要将multiple属性添加到select标记。

<select id ="test1" multiple>

并将脚本更改为

$('#test1 option').each(function() {
   // alert($(this).text() + ' ' + $(this).val());
   if($(this).data('status') == 'YES'){
        $(this)
            .css('color','red')
            .attr('selected',true);
   }
});

演示 http://jsfiddle.net/gaby/6N88x/1/

答案 1 :(得分:1)

试试这个:

if($(this).data('status') == 'YES')

答案 2 :(得分:1)

我认为您不能设置<option>的颜色,但您可以循环使用<select>,如下所示:

$(document).ready(function(){
    $('#test1 > option').each(function() {
       if($(this).data('status')=="YES") {
           $(this).html('test'); // or whatever
       }
    });

});

答案 3 :(得分:1)

$(this).data-status更改为$(this).attr('data-status')

答案 4 :(得分:1)

不需要循环,这应该这样做。

   $("#test1 > option[data-status=YES]").css("color","red"); 

答案 5 :(得分:0)

$('#test1 > option').filter(function() {
    return $(this).data("status") == "YES";
}).remove(); // or whatever

演示:http://jsfiddle.net/xxzLA/

http://api.jquery.com/filter