2013-12-11 40 views
-1

好的,所以我使用的是JS,並且遇到以下問題。使用Javascript中的this.id出現錯誤

在我的PHP文件我有:

<?php 

    $file = fopen("utensils/".$cake.".txt", "r") or exit("Unable to open file!"); 

    while(!feof($file)) { 
      $image = fgets($file); 
      echo "<div id='".$image."' class='utensil' onclick='useUtensil(this.id)'>".$image."</div>"; 
    } 

    fclose($file); 

?> 

,而在JS我有:

function useUtensil(id) { 
     alert(id); 
    if (id == "Sandwich Tins") {  
     alert(id); 
    } else { 
     alert("You do not need that utility!"); 
    } 
} 

這是一個非常奇怪的錯誤,因爲我有它的工作原理代碼幾乎是相同的一塊,但是,通過這段代碼,雖然第一個警報(id)警告「三明治罐子」,但它不警告(id),而是運行到else語句中。

任何幫助非常感謝!

+3

一個ID可能不包含空格... –

+0

試過它不使用空格,它仍然沒有工作,我的另一個工程也使用空格... –

+0

學習調試,什麼是傳遞作爲該ID? console.log是你的朋友。 – epascarello

回答

0

所以你說的警報返回"Sandwich Tins",然而比較還是失敗?如果是這種情況,那麼正如其他人提到的那樣:

1)前導或尾隨空格。

2)案例問題(雖然從你聲稱,似乎並非如此)。沒有雙關語意。

3)「三明治罐」是錯誤的。也許它應該是id ==「三明治錫」?

測試的第一個這樣做的:

function useUtensil(id) { 
    if (id.trim() == "Sandwich Tins") {  
     alert(id); 
    } else { 
     alert("You do not need that utility!"); 
    } 
} 

如果不行,試試這個:

function useUtensil(id) { 
    if (id.trim().toLowerCase() == "Sandwich Tins".toLowerCase()) {  
     alert(id); 
    } else { 
     alert("You do not need that utility!"); 
    } 
} 

如果仍然不行,我建議檢查輸入您的控制檯,並確保您將它與正確的字符串進行比較。

相關問題