2012-11-26 25 views
0

我有多个下拉列表页面上:的jQuery遍历父改变CSS

HTML

<div class="select-full"> 
    <select id="activitylevel" class="input_select step2-ddl c2-sb-enabled"> 
     <option selected="selected" value="-1">-- please select --</option> 
     <option value="1">Step 1 </option> 
     <option value="3">Step 2</option> 
     <option value="4">Step 3</option> 
    </select> 
    <div class="c2-sb-wrap" tabindex="0"> 
     <div class="c2-sb-inner-wrap"></div> 
    </div> 
</div> 

我想边框应用到带班C2-SB-股利内包装到没有选择任何选择(价值== -1)

我试图用最接近()和next/nextAll但它不发生的事情:

$('.step2-ddl').each(function() { 

    if ($(this).val() == '-1') { 
     $(this).closest('.select-full').nextAll('.c2-sb-inner-wrap').css('border-color', '#f86556').css('border-style', 'solid'); 
    } 
    else { 
     $(this).closest('.select-full').nextAll('.c2-sb-inner-wrap').css('border-style', 'none'); 
    } 
});​ 
+0

您是否希望在页面加载时应用此边框一次?或者你想每次选择一个选项时都改变它? – 3dgoo

回答

2

使用.find()代替.nextAll()

像:

$(this).closest('.select-full').find('.c2-sb-inner-wrap') 
     .css('border-color', '#f86556').css('border-style', 'solid'); 

作为一个方面说明,我建议切换类,而不是直接更改CSS属性,因为它是既精简和更清洁。

+0

谢谢 - 并采取建议。 – tom