2016-02-25 59 views
-2

我試圖根據它們的ID爲TD元素添加一個值。要做到這一點,我想通過if語句來傳遞一系列id,見下文;設置值取決於TD.id

var pricing = 0; 
var extraLeg = 9.99; 
var standardSeat = 4.99; 
var upFront = 9.99; 
var extraLeg1 = 13.99; 

    var tds = document.getElementsByTagName("td"); 
    for (var T = 0; T<tds.length; T++) 
    { 
    if(tds[T].id == "_1a","_1f") 
    { 
     pricing = extraLeg1; 
    } 
    if(tds[T].id == "_2a","_6f") 
    { 
     pricing = upFront; 
    } 
    if(tds[T].id == "_7a","_11f") 
    { 
     pricing = standardSeat; 
    } 
    if(tds[T].id == "_12a","_13f") 
    { 
     pricing = extraLeg; 
    } 
    if(tds[T].id == "_13a","_23f") 
    { 
     pricing = standardSeat; 
    }  
    } 

表中的每一行由7個td元素;
「_1a」, 「_ 1B」, 「_ 1C」, 「通道號」, 「_ 1D」, 「_ 1E」, 「_ 1F」

然而,當我嘗試這一點,點擊套價格爲第一要素所有其他元素儘管for循環。任何人都可以告訴我如何解決這個問題,以便td被賦予特定的值?

在此先感謝

+0

爲什麼jQuery標籤?您的if語句也無效。最後,td元素不能具有值屬性。 – j08691

+0

我應該在問題中指定if語句要檢查TD.id的範圍,如果TD.id在該範圍內,則定價是指定給文本框的值。 – bdg

回答

1

你做的不正確比較。

應該是這樣:

if(tds[T].id == "_13a" || tds[T].id == "_23f") 

在代碼中,表達tds[T].id == "_13a","_23f"評估爲「_23f」由於逗號,因爲它變得truthy,所有的條件是否得到執行。

您可以在控制檯檢查:console.log((2 == 3, "_23f"));

這就是說,你應該考慮使用交換機塊的代碼更好的表現,使未來的變化更容易。

var pricing = 0; 
    var extraLeg = 9.99; 
    var standardSeat = 4.99; 
    var upFront = 9.99; 
    var extraLeg1 = 13.99; 

    var tds = document.getElementsByTagName("td"); 
    for (var T = 0; T<tds.length; T++) 
    { 
     switch (tds[T].id) { 
      case "_1a": 
      case "_1f": 
       pricing = extraLeg1; 
       break; 
      case "_2a": 
      case "_6f": 
       pricing = upFront; 
       break; 
      case "_7a": 
      case "_11f": 
       pricing = standardSeat; 
       break; 
      case "_12a": 
      case "_13f": 
       pricing = extraLeg; 
       break; 
      case "_13a": 
      case "_23f": 
       pricing = standardSeat; 
       break; 
     } 
    } 

編輯:如果你想添加更多的像「_1b」,「_1c」那麼你就可以聯合起來的情況下,只要你的價格是一樣的。例如:

switch (tds[T].id) { 
     case "_1a": 
     case "_1b": 
     case "_1c": 
     case "_1d": 
     case "_1e": 
     case "_1f": 
      pricing = extraLeg1; 
      break; 
     case "_2a": 
     case "_6f": 
      pricing = upFront; 
      break; 
     case "_12a": 
     case "_13f": 
      pricing = extraLeg; 
      break; 
     case "_7a": 
     case "_11f": 
     case "_13a": 
     case "_23f": 
      pricing = standardSeat; 
      break; 
    } 
+0

好的謝謝,在開關塊的情況下,我將不得不宣佈每個td作爲一個新的情況下,或在那裏爲此設置一個範圍,如
「_1a」,「_ 1b」,「_ 1c」,「_ 1d」 「_1e」,「_ 1f」都是一種情況? – bdg

+0

檢查我的編輯,並通過http://www.w3schools.com/js/js_switch.asp瞭解更多關於開關。 – Ananth

+0

這仍然給我所有的TD元素設置爲相同的價格相同的問題。 – bdg