2016-01-06 36 views
0

已經搜索周圍,找不到任何東西來回答我遇到的問題。使用存儲在變量中的ID設置標籤的值

我有一個模式的表格,將有預先設定的價格是折扣或標準的,所以我已經存儲在兩個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正確填充用合適的價格預期的標籤,但我不認爲我得到使用labelID正確的代碼問題的位變量在標籤[id = *]部分。

我已經測試了對標籤ID進行硬編碼以確保實際上可以拉出正確的鍵:值數據,並且這些都是可行的,只是當我使用具有連接的ID名稱的變量。我確信它的語法錯誤只是不能解決問題。

希望有人能指出我正確的方向如何去動態設置我想要填充標籤的ID。

編輯:對於那些已經回覆的人來說,很抱歉,這個功能是一個較大的JS文件的一部分,該文件將處理預訂表單的其他部分。

感謝

+0

多個問題都存在,e是沒有定義在你的方法。您應該連接labelID,而不是將其視爲字符串。 –

+0

你如何訪問'e.currentTarget'? –

+1

替換爲編碼$(e.currentTarget).find('label [id ='+ labelID +']')。text(price [index]); – msvairam

回答

0

你的代碼是尋找ID labelID,因爲你把它作爲一個字符串。

替換此:

$(e.currentTarget).find('label[id=labelID]').text(price[index]); 

本:

$(e.currentTarget).find("label[id='"+labelID+"']").text(price[index]); 

既然你沒有提供任何的演示,我不能測試整個事情。

0

只需使用

$('#' + labelID).text(price[index]); 
0

基於的事實是,一個元素的ID應該是uniique,那麼你沒有寫這麼多的代碼更改文本。你可以簡單地使用像,

$("#"+labelID).text(price[index]);