簡體   English   中英

在javascript中切換字符串時遇到問題

[英]Trouble with a switch on a string in javascript

function listUsers(profil) {
    alert("type "+typeof(profil));
    switch (profil.toUpperCase()) {
        case "DGA":
            document.getElementById("id_importeur").innerHTML = "<?php echo $html_DGA; ?>";
            break;
        case "INDUSTRIEL":
            document.getElementById("id_importeur").innerHTML = "<?php echo $html_indus; ?>";
            break;
        default:
            alert("<?php echo plugin_lang_get("profil_err_users"); ?>");
    }
}

出於某種原因,使用此代碼不起作用-JavaScript實際上甚至無法加載(這是一個片段,我在window.onload()函數中使用alert() ,只有該函數使其不顯示) 。

如果我評論這兩種情況(但不是默認情況),則可以。 如果我評論這些案例的內容( document.getElementById()語句),它將無法正常工作。

如果我嘗試使用帶有if子句的相同構造,則它可以工作,因此它不是來自案例的內容,而是案例本身。

我不知道我在做什么錯誤的,因為我檢查參數profil類型,它是一個字符串。 在我的情況下,我使用雙引號(也用單引號進行了測試),並且在這里沒有看到語法錯誤導致無法加載JavaScript。

刪除這些PHP部分后,似乎可以使用。 默認情況下,我還添加了break語句。 我很確定您的PHP會插入破壞JS代碼的文本。

http://jsfiddle.net/bbW25/

var idImp = document.getElementById("id_importeur");
function listUsers(profil){
 switch(profil.toUpperCase()){
  case "DGA":
   idImp.innerHTML = "DGA";
  break;
  case "INDUSTRIEL":
   idImp.innerHTML = "INDUS";
  break;
  default:
   idImp.innerHTML = "profil_err_users";
  break;
 }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM