2014-11-04 50 views
0

我正在设计排名栏,我有9个栏,但是我希望栏高度可以变化,使栏0和栏8最长。我似乎操纵我的jquery选择器来改变使用选择选项的值的酒吧的CSS样式。 以下是我的代码。使用列表中的子元素的值的属性来更改div类的css

CSS:

.rating-c .br-widget { 
height: 60px; 
display: inline;  
} 

.rating-c .br-widget a { 
display: inline;  
width: 20px; 
height: 60px; 
float: left; 
background-color: #FFFFFF; 
margin: 2px; 
text-decoration: none; 
font-size: 16px; 
font-weight: 400; 
line-height: 2.2; 
text-align: center; 
color: #444444; 
border: thin solid #b6b6b6; 
} 
.rating-c .br-widget a.br-active, 
.rating-c .br-widget a.br-selected { 
background-color: #59a6d6; 
color: white; 
} 

HTML:

 <div class="rating-c"> 
      <label class="ratingLabel"> 
       <select id="rating-c" name="rating"> 
         <option value=""></option> 
         <option value="1">4</option> 
         <option value="2">3</option> 
         <option value="3">2</option> 
         <option value="4">1</option> 
         <option value="5">0</option>        
         <option value="6">1</option> 
         <option value="7">2</option> 
         <option value="8">3</option> 
         <option value="9">4</option> 
        </select> 
       Price</label>  
      </div> 

的JavaScript:

$('.rating-c .br-widget a select[name=rating]').each(function(){ 
      if($(this).attr("value")==="2"){ 
       $(".rating-c").css("height", "55px"); 
      } 
      if($(this).attr("value")==="3"){ 
       $(".rating-c .br-widget a").css("height", "50px"); 
      } 
     }); 

这似乎并没有工作,谁能帮助。谢谢。请帮助

+2

Protip1:'this.value' – 2014-11-04 16:32:43

+1

Protip2:转换为整数。这就像使用字符串“true”作为布尔检查。这只是没有意义。 – 2014-11-04 16:33:11

+0

你是什么意思? – 2014-11-04 16:34:55

回答

0

使用什么@SterlingArcher说,让我们使用this.valueparseInt ...

if (parseInt(this.value) === 2) { 
    $("something").css("key", "value"); 
}; 

第一,parseInt值转换成一个数字,使您的特定的比较使更多的意义。

其次,我们使用this.value它使用value属性,而不是属性。这也可以在jQuery购买做$(this).val(),它检索属性,而不是你以前正在做的价值属性来完成。

+0

它不起作用,这个问题可以从我自己选择吗? $('。rating-c .br-widget a select [name = rating]') – 2014-11-04 16:58:25