2013-03-01 18 views
0

我当前的jQuery选择值属性。如何更改我的jQuery以选择数据属性“data-price”?如何选择jQuery中的HTML5数据属性?

$('#trapfabric, #trapsize').on('change', function() { 
    var $selected = $('#trapfabric, #trapsize').children(":selected"); 
    sum = parseInt($('#trapsize').val()) + parseInt($('#trapfabric').val()); 
    $('#priceToSwap3').html('$' + sum 
    ); 
}); 

我知道我必须适应在上述这样的事情,但我不能得到它的工作:

$('#priceToSwap3').text($selected.data("price")) 

EDITED

我的HTML:

<span id="priceToSwap3"">$238</span> 

<select id="trapsize" onChange="swapImage()"> 
<option data-price="238">foo</option> 
<option data-price="288">foo</option> 
</select> 

<select id="trapfabric" onChange="swapImage()"> 
<option data-price="0">foo</option> 
<option data-price="20">foo</option> 
</select> 
+0

我在脚本的任何地方都看不到数据价格。你能澄清你的意思吗? – 2013-03-01 11:12:13

+0

它没有任何意义,为什么不使用输入值? – 2013-03-01 11:18:38

+0

@Felix Kling我发布了我的HTML。 – 2013-03-01 11:29:51

回答

1

我相信这是你想要什么:

var $elements = $('#trapfabric, #trapsize'); 
$elements.on('change', function() { 
    var $selected = $elements.children(":selected"); 
    var sum = 0; 

    $selected.each(function() { 
     sum += $(this).data('price'); 
    }); 

    $('#priceToSwap3').html('$' + sum); 
}); 

你必须遍历所选元素,以获得price基准他们每个人。

DEMO

+0

是的。绝对。谢谢。 – 2013-03-01 12:09:55

1

如果您想获得,请联系#trapsize,您需要使用的元素$(this);

jsfiddle

$('#trapfabric, #trapsize').on('change', function() {  
    $('#priceToSwap3').text('$' + $(':selected', this).data("price")); 
}); 
+0

嗨Adil,我是jQuery的新手。我在哪里添加这行代码,以便我可以替换value属性? – 2013-03-01 11:45:00

+0

Adil,我认为自己的答案会很奇怪,因为它确实没有那么不同,所以我在给出相关的html之后编辑了你的答案。 @ElijahYang现在在上面的答案中有一个jsfiddle示例。 – Joonas 2013-03-01 11:53:40

+0

谢谢@Joonas,你真好。 – Adil 2013-03-01 12:03:06

相关问题