获取选择值然后添加到自定义html属性

时间:2014-05-03 09:23:29

标签: javascript php jquery html5 laravel-4

有没有办法可以让客户选择然后将其添加到自定义的html5属性中?

我有一个动态来自数据库的select 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会这样做,但不确定如何寻求帮助,如何做到这一点的示例。

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分: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>