使用 jQuery 更改标签的值
我有一个标签,costLabel。
我想要做的是根据下拉列表的选定值更改此标签的值。
这是我的 HTML:
<table>
<tr>
<td width="343">Package*</td>
<td colspan="4">
<select class="purple" name="package">
<option value="standard">Standard - €55 Monthly</option>
<option value="standardAnn">Standard - €49 Monthly</option>
<option value="premium">Premium - €99 Monthly</option>
<option value="premiumAnn" selected="selected">Premium - €89 Monthly</option>
<option value="platinum">Platinum - €149 Monthly</option>
<option value="platinumAnn">Platinum - €134 Monthly</option>
</select>
</td>
<tr>
<td width="343">
<p>We bills quarterly/annually in advance</p>
<p>See <a href="#dialog" name="modal">Pricing</a> for more details</p>
</td>
<td colspan="4"><label id="costlabel" name="costlabel">Total Cost:</label></td>
<tr>
</table>
成本标签中的值是
- Standard =“€165 Quarterly”
- StandardAnn =“€588 Annually”
- Premium =“€297 Quarterly”
- PremiumAnn =“€1068 Annually”
- Platinum =“€447 Quarterly”
- PlatinumAnn =“每年 €1608”
我确实有以下代码,根据下拉菜单计算费用,但注册表已更改为更简单(即折扣选择没有消失),我有点适应 jQuery 时遇到麻烦。有人可以帮忙吗?
$(function() {
$("#discountselection, select[name=package], input[name=discount]").
change(function() {
var
selected_value = $("#discountselection").val(),
discount = [12, 24, 36],
package = $("select[name=package]").val(),
package_prices = {'standard': 49, 'premium': 85, 'platinum': 134 },
cost = package_prices[package] * discount[selected_value-1];
$("#costlabel").val(cost);
});
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我似乎对你的 html 结构有一个盲点,但我认为这就是你正在寻找的。它应该从
select
输入中找到当前选定的选项,将其文本分配给newVal
变量,然后然后将该变量应用于#costLabel
标签的 >value 属性:jQuery
html:
上述内容的工作演示位于:JS Bin
I seem to have a blind spot as regards your html structure, but I think that this is what you're looking for. It should find the currently-selected option from the
select
input, assign its text to thenewVal
variable and then apply that variable to thevalue
attribute of the#costLabel
label:jQuery
html:
Working demo of the above at: JS Bin
val() 更像是 attr('value') 的快捷方式。对于您的用法,请使用 text() 或 html() 代替
val() is more like a shortcut for attr('value'). For your usage use text() or html() instead
.text 是正确的,以下代码对我有用:
.text is correct, the following code works for me:
验证 (HTML5):属性“name”不是元素“label”的有效属性。
Validation (HTML5): Attribute 'name' is not a valid attribute of element 'label'.