[英]Refresh span value and show in alert using jquery
我有三个选项的下拉菜单: soft
, medium
和hard
。 onchange
我显示的价格span
。 当用户选择soft
价格为1000
, medium
价格为1500
,而hard
为2000
。
问题是我的alert()
在刷新span
之前执行,但是我想在刷新价格后显示alert
。 我怎样才能做到这一点?
<span class="amount"><i class="fa fa-inr"></i>0</span>
$('.support-layer-firmness').on('change', function (e) {
// onchange I am getting old value, if i select soft i am getting 0 instead of 1000
var price = $('span.amount').text();
alert(price);
});
HTML
<li class="tmcp-field-wrap">
<label for="tmcp_select_1"></label>
<select class="tmcp-field support-layer-firmness tm-epo-field tmcp-select tm-valid" name="tmcp_select_0">
<option value="Select Firmness_0" class="tc-multiple-option tc-select-option" data-price="">Select Firmness</option>
<option value="Soft_1" class="tc-multiple-option tc-select-option" data-price="1000">Soft</option>
<option value="Medium_2" class="tc-multiple-option tc-select-option" data-price="1500">Medium</option>
<option value="Hard_3" class="tc-multiple-option tc-select-option" data-price="2000">Hard</option>
</select>
<span class="price tc-price hidden">
<span class="amount"><i class="fa fa-inr"></i>1,000</span>
</span>
不带参数的
jQuery.text
方法将返回textContent
,如果设置了参数,则将设置textContent
!
在您的示例中,您永远不会设置textContent
,使用jQuery.data
获取data-price
值,然后使用jQuery.text(VALUE)
设置textContent
。
$('.support-layer-firmness').on('change', function(e) { var price = $(this).find('option:selected').data('price') $('span.amount').text(price); alert(price); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <li class="tmcp-field-wrap"> <label for="tmcp_select_1"></label> <select class="tmcp-field support-layer-firmness tm-epo-field tmcp-select tm-valid" name="tmcp_select_0"> <option value="Select Firmness_0" class="tc-multiple-option tc-select-option" data-price="">Select Firmness</option> <option value="Soft_1" class="tc-multiple-option tc-select-option" data-price="1000">Soft</option> <option value="Medium_2" class="tc-multiple-option tc-select-option" data-price="1500">Medium</option> <option value="Hard_3" class="tc-multiple-option tc-select-option" data-price="2000">Hard</option> </select> <span class="price tc-price hidden"> <span class="amount"><i class="fa fa-inr"></i>1,000</span> </span> </li>
这条路:
$('.support-layer-firmness').on('change', function (e) { // onchange I am getting old value, if i select soft i am getting 0 instead of 1000 alert($('.support-layer-firmness option:selected').attr('data-price')); $('span.amount').text($('.support-layer-firmness option:selected').attr('data-price')); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <li class="tmcp-field-wrap"> <label for="tmcp_select_1"></label> <select class="tmcp-field support-layer-firmness tm-epo-field tmcp-select tm-valid" name="tmcp_select_0"> <option value="Select Firmness_0" class="tc-multiple-option tc-select-option" data-price="">Select Firmness</option> <option value="soft" class="tc-multiple-option tc-select-option" data-price="1000">Soft</option> <option value="medium" class="tc-multiple-option tc-select-option" data-price="1500">Medium</option> <option value="hard" class="tc-multiple-option tc-select-option" data-price="2000">Hard</option> </select> <span class="price tc-price hidden"> <span class="amount"><i class="fa fa-inr"></i>1,000</span> </span>
这是你的jsfiddle-> jsfiddle
$('.support-layer-firmness').on('change', function (e) {
var value=$(this).find(':selected').attr('data-price');
$('span.amount').text(value);
alert(value);
});
尝试这个 :
$(document).ready(function() { $('.support-layer-firmness').on('change', function (e) { $('span.amount').hide(10); var price = $("option:selected").attr("data-price"); $('span.amount').text(price); $('span.amount').show(1000,function(){ alert(price); }) }) })
<li class="tmcp-field-wrap"> <label for="tmcp_select_1"></label> <select class="tmcp-field support-layer-firmness tm-epo-field tmcp-select tm-valid" name="tmcp_select_0"> <option value="Select Firmness_0" class="tc-multiple-option tc-select-option" data-price="">Select Firmness</option> <option value="Soft_1" class="tc-multiple-option tc-select-option" data-price="1000">Soft</option> <option value="Medium_2" class="tc-multiple-option tc-select-option" data-price="1500">Medium</option> <option value="Hard_3" class="tc-multiple-option tc-select-option" data-price="2000">Hard</option> </select> <span class="price tc-price hidden"> <span class="amount"><i class="fa fa-inr">1000</i></span> </span> </li> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.