在Javascript中this.id出错

时间:2013-12-11 14:53:08

标签: javascript php

好的,所以我使用的是JS,我遇到了以下功能的问题。

在我的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语句。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

所以你说警报正在返回"Sandwich Tins",但比较仍然失败了?如果是这种情况,那么就像其他人提到的那样:

1)领先或尾随空格。

2)案件问题(尽管你声称的情况似乎并非如此)。没有双关语。

3)“三明治”是错误的。也许它应该是id ==“Sandwich Tin”?

通过这样做来测试第一个:

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!");
    }
}

如果仍然无效,我建议您检查控制台中的输入,并确保将其与正确的字符串进行比较。

答案 1 :(得分:-4)

放一个空格 id ==&#34;三明治罐&#34;