2014-05-03 28 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>