使用存储在变量中的ID设置标签的值
Set value of a label using an ID stored in a variable
四处搜索,找不到任何答案来回答我遇到的这个问题。
我有一个模态形式的表,它将具有折扣或标准的预设价格,所以我将定价值存储在两个JS对象中。还有另一个JS数组,它也有设置价格的项目。
当预订模式打开时,我会运行以下循环,以浏览并用正确的价格填充每个商品的标签(无论是折扣价还是标准价,都在之前确定)。
function bookingPrices(price, ticketType){
for (var i = 0; i < ticketType.length; i++){
for (var index in price){
if (ticketType[i] == index){
var labelID = ticketType[i] + "Price";
$(e.currentTarget).find('label[id=labelID]').text(price[index]);
}
}
}
}
我遇到的问题是,我想使用labelID以正确的价格正确地填充预期的标签,但我认为我没有正确地使用label[id=*]部分中的labelID变量。
我已经测试了对标签ID的硬编码,以确保我能够真正提取正确的键:值数据,这一切都有效,只有当我使用具有串联ID名称的变量时,它才会失效。我确信这是语法上的错误,只是搞不清楚是什么。
希望有人能为我指明正确的方向,告诉我如何动态设置我想要填充的标签的ID。
编辑:很抱歉那些已经回复的人,这个功能是一个更大的JS文件的一部分,该文件负责处理预订表格的其他部分。
感谢
您的代码正在查找ID labelID
,因为您将其用作字符串。
替换此:
$(e.currentTarget).find('label[id=labelID]').text(price[index]);
通过这个:
$(e.currentTarget).find("label[id='"+labelID+"']").text(price[index]);
由于你没有提供任何演示,我无法测试整个东西。
只需使用
$('#' + labelID).text(price[index]);
基于元素的id应该是唯一的这一事实,那么您就不必编写那么多代码来更改文本。你可以简单地使用类似
$("#"+labelID).text(price[index]);
相关文章:
- 为两个ID设置一个变量的正确语法
- React Native:将id设置为一个组件并获取该组件's的id
- 使用setAttribute将id设置为元素最后一行的td
- Jquery 选择如何通过 id 设置行颜色
- 根据 TD.id 设置值
- 如何在 Cookie 中将会话 ID 设置为在会话结束时过期
- 无法在 JQUERY 中将 ID 设置为动态创建的标签
- 使用存储在变量中的ID设置标签的值
- 是否可以将HTML id设置为json对象并将其传递给另一个函数
- 将元素id设置为一个变量JavaScript/HTML
- Javascript:将 ID 设置为子现有表
- Javascript:通过元素ID设置/获取元素
- 如何将id设置为<tr>从JSON响应生成
- 将Div Id设置为隐藏字段的值
- 如何使用switch语句设置变量的值,该语句的表达式是作为dom元素id设置的变量
- 如何按Id设置下拉选项值
- 如何通过id设置组合值
- 如何在jqGrid中将元素ID设置为表单元格
- 如何将id设置为Html.MVC上的文本框项
- 如何将视图'id设置为模型'id