2012-02-06 59 views
0

我有一個像下面這樣的選擇選項。這些值是動態創建的。有沒有辦法使用js/jquery隱藏價格?用js隱藏選擇文本

記住我無法訪問文本,所以我不能在跨度包價,並設置顯示:無

<label for="input_1_33">Condition</label> 
<select tabindex="2" name="input_33"> 
<option value="Please Select|" price="">Please Select</option> 
<option value="Poor|-5" price="-£ 5.00">Poor -£ 5.00</option> 
<option value="Average|0" price="">Average</option> 
<option value="Good|5" price="+£ 5.00">Good +£ 5.00</option> 
<option value="Excellent|10" price="+£ 10.00">Excellent +£ 10.00</option> 
</select> 

所以它看起來像這樣:

<label for="input_1_33">Condition</label> 
<select tabindex="2" name="input_33"> 
<option value="Please Select|" price="">Please Select</option> 
<option value="Poor|-5" price="-£ 5.00">Poor</option> 
<option value="Average|0" price="">Average</option> 
<option value="Good|5" price="+£ 5.00">Good</option> 
<option value="Excellent|10" price="+£ 10.00">Excellent</option> 
</select> 

由於事先

+1

你所說的 「隱藏」 是什麼意思?如果有人在代碼中查看源代碼,你的意思是隱藏它們嗎? – 2012-02-06 20:04:25

+1

爲什麼你想通過js來做到這一點?爲什麼不從服務器端渲染你想要的方式? – ShankarSangoli 2012-02-06 20:05:07

回答

3

這裏是一個超簡潔的方式做你所需要的:jsFiddle

的jQuery:

$('select[name="input_33"] option:gt(0)').each(function(){ 
    $(this).text(($(this).text().split(' ')[0])); 
}); 
+0

+1這是非常乾淨的解決方案。 – 2012-02-06 20:27:52

+0

這對我來說有點微不足道。但是,謝謝你指出我正確的方向。乾杯 – 2012-02-07 14:06:03

0

分配的ID來選擇,然後在腳本塊執行以下操作:

<script language="javascript" type="text/javascript"> 
    $(document).ready(function() { 
     $("#input_33").each(function() { 
      $('option', this).each(function() { 
       var option = this; 
       var space = option.text.indexOf(" "); 
       if (space > -1) { 
        option.text = option.text.substring(0,space); 
       } 

      }) 

     }); 
    }); 
</script> 

編輯:正如你可以看到我所做的是找到每個選項中的空間,然後剪切找到空間的字符串。它會使「請選擇」閱讀「請」,但你會得到漂移。

祝你好運!

+0

這不是猶太教。只有當選項在價格之前包含單詞文本時纔有效。 – TOUDIdel 2012-02-06 20:22:40

+1

該計劃是不爲他做他的家庭作業/工作,但他得到了恕我直言的想法。 – 2012-02-06 20:24:47