使用存储在变量中的ID设置标签的值

Set value of a label using an ID stored in a variable

本文关键字:ID 设置 标签 存储 变量      更新时间:2023-09-26

四处搜索,找不到任何答案来回答我遇到的这个问题。

我有一个模态形式的表,它将具有折扣或标准的预设价格,所以我将定价值存储在两个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]);