2014-05-03 98 views
0

有沒有一種方法可以讓我選擇一個客戶,然後將其添加到自定義html5屬性?獲取選擇值然後添加到自定義html屬性

我有一個選擇MNU從中產生以下HTML數據庫動態來:

<select name="options"> 
    <option value="2 Tier &pound;250.00">2 Tier &pound;250.00</option> 
    <option value="3 Tier &pound;350.00">3 Tier &pound;350.00</option> 
    <option value="4 Tier &pound;450.00">4 Tier &pound;450.00</option> 
    </select> 

所以基本上,如果客戶選擇選項,一個我要搶值去掉文字和剛剛得到的數字,而不是刷新頁面或移動到其他任何地方(只是)將此值添加到自定義屬性I; m用於jQuery購物車。

<div class="item" data-id="123" data-name="Some product name" data-price="VALUE_HERE"> 

我會假設jQuery來做到這一點,但不知道怎麼那麼尋找一些幫助,就如何做到這一點,請例子。

回答

1

這是不是你在看什麼?

FIDDLE

<select name="options"> 
    <option value="2 Tier &pound;250.00">2 Tier &pound;250.00</option> 
    <option value="2 Tier &pound;250.00">3 Tier &pound;350.00</option> 
    <option value="2 Tier &pound;250.00">4 Tier &pound;450.00</option> 
    </select> 
<div class="item" data-id="123" data-name="Some product name" data-price="VALUE_HERE"> 

的Javascript

$("select").change(function(){ 
    selectedValue = $(this).val();  
//alert(selectedValue); 
var p = selectedValue.indexOf("£"); 
rest = selectedValue.substring(p+1); 
$(".item").attr("data-price",rest)}).change(); 
+0

那是一個,但我怎麼能帶出的文本,則£標誌,只是抓住,像這樣的例子在250.00數量。 –

+0

我們是否可以給出像

+0

不,它已被拉到數據庫,所以需要以某種方式去除它。我試過這個$(this).val()。match(/ [ - +]?[0-9] * \。?[0-9] +/g);它確實有用,但它增加了兩項而不是一項。 –

0

在這裏你去:

<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    $("select[name=options]").change(function() { 
     var element = $(this).attr("rel"); 
     var tmp = $(this).val().match(/[-+]?[0-9]*\.?[0-9]+/g); 
     var value = tmp[tmp.length-1]; 

     $('#'+element).attr('data-price',value); 
    }) 
}); 
</script> 
</head> 
<body> 
<select name="options" rel="item-1"> 
    <option value="2 Tier &pound;250.00">2 Tier &pound;250.00</option> 
    <option value="3 Tier &pound;350.00">3 Tier &pound;350.00</option> 
    <option value="4 Tier &pound;450.00">4 Tier &pound;450.00</option> 
</select> 

<div class="item" id="item-1" data-name="Some product name" data-price="" /> 
</body> 
</html>