2016-05-03 6 views
-2

このjavascript DOMをjqueryに変換しようとしています。何らかの理由でコードが実行されていません。これは私が使っているDOMです。Javascriptからjqueryへの変換

document.getElementById("forma").onsubmit = function() { 


    var ime = document.getElementById("ime").value; 
    var priimek = document.getElementById("priimek").value; 
    var stranka = document.getElementById("stranka").value; 

    try { 
     var kandidat = Kandidat(ime, priimek, stranka); 
     DodajKandidataNaPolje(kandidat); 
     document.getElementById("seznam").innerHTML = OblikujIzpis(PridobiPolje()); 
     document.getElementById("obvestila").innerHTML = "Uspešen Vnos!"; 
     document.getElementById("obvestila").className = "bg-success"; 
    } 
    catch (napaka) { 
     document.getElementById("obvestila").innerHTML = napaka.message; 
     document.getElementById("obvestila").className = "bg-danger"; 
    } 

    document.getElementById("forma").reset();  
} 

document.getElementById("forma_isci").onsubmit = function() { 
    var iskani_niz = document.getElementById("iskalniNiz").value; 
    document.getElementById("seznam").innerHTML = OblikujIzpis(Isci(iskani_niz)); 
    document.getElementById("obvestila").innerHTML = "Rezultat iskanja po iskalnem nizu " + iskani_niz; 
    document.getElementById("obvestila").className = "bg-info"; 
} 

document.getElementById("pobrisi").onclick = function() { 
    IzbrisiPolje(); 
    document.getElementById("obvestila").innerHTML = "Polje je bilo izbrisano!"; 
    document.getElementById("obvestila").className = "bg-success"; 
    document.getElementById("seznam").innerHTML = ""; 
    document.getElementById("forma").reset(); 
} 

これはjqueryで作成したものです。ここ

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
    $("forma").submit(function(){ 
     var ime=$("ime").val(); 
     var priimek=$("priimek").val(); 
     var stranka=$("stranka").val(); 
     try{ 
     var kandidat= Kandidat(ime, priimek, stranka); 
     DodajKandidataNaPolje(kandidat); 
     $("seznam").html(OblikujIzpis(PridobiPolje()); 
     $("obvestila").html("Uspešen Vnos!"); 
     $("obvestila").addClass("bg-success"); 
    } 
    catch(napaka){ 
     $("obvestila").html(napaka.message); 
     $("obvestila").addClass("bg-danger"); 

    } 

    $("forma").reset(); 

    $("forma_isci").submit=function(){ 
     var iskani_niz=$("iskaniNiz").val(); 
     $("seznam").html(OblikujIzpis(iskani_niz)); 
     $("obvestila").html("Rezultat iskanja po iskalnem nizu " + iskani_niz); 
     $("obvestila").addClass("bg-info"); 
    } 
    $("pobrisi".click=function(){ 
     IzbrisiPolje(); 
     $("obvestila").html("Polje je bilo izbrisano!"); 
     $("obvestila").addClass("bg-success"); 
     $("seznam").html(""); 
     $("forma").reset(); 
    } 
    } 
    }); 
}); 
</script> 

は私のHTMLファイル

<!DOCTYPE html> 
<html> 
    <head> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous"> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous">  
    <script src="funkcije.js"></script> 
    <script src="dom.js"></script> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> 
    <title>JavaScript - DOM</title> 
    </head> 
    <body> 

    <div class="container"> 
     <h1>Seznam predsedniških kandidatov!</h1> 

     <form action="#" id="forma_isci" class="form-inline"> 
     <div class="form-group"> 
      <input type="text" class="form-control" id="iskalniNiz" placeholder="Iskalni niz"> 
     </div> 
     <button type="submit" class="btn btn-info">Išči</button> 
     </form> 

     <br /> 
     <br /> 
     <h3>Vnos novih kandidatov</h3> 
     <form action="#" id="forma" class="form-group"> 
     <table class="table"> 
      <tr> 
      <td>Ime:</td> 
      <td> 
       <input type="text" id="ime" placeholder="Ime kandidata" class="form-control" /> 
      </td> 
      </tr> 
      <tr> 
      <td>Priimek:</td> 
      <td> 
       <input type="text" id="priimek" placeholder="Priimek kandidata" class="form-control" /> 
      </td> 
      </tr> 
      <tr> 
      <td>Stranka:</td> 
      <td> 
       <select id="stranka" class="form-control" > 
       <option>Demokratska</option> 
       <option>Republikanska</option> 
       <option>Neodvisna</option>    
       </select> 
      </td> 
      </tr> 
      <tr> 
      <td> 
       <input type="submit" value="Dodaj" class="btn btn-info" /> 
      </td> 
      <td> 
       <input type="reset" value="Ponastavi" class="btn btn-info" /> 
      </td> 
      </tr> 
     </table> 
     </form> 

     <br /> 
     <br /> 
     <p id="obvestila"></p> 

     <br /> 
     <br /> 
     <h3>Seznam obstoječih kandidatov</h3> 
     <ul id="seznam" class="list"></ul> 
     <button class="btn" id="pobrisi">Pobriši seznam</button> 
    </div> 


    </body> 
</html> 

あるので、彼らはここで見られることを必要としていないので、とにかく、私はここの機能を投稿するつもりはありません。

JavaScriptコードが機能し、サイトが正常に機能し、要素が正常に追加されます。しかし、私はJqueryで書いたのと同じ効果を得たいです。私はいくつかの問題が.classNameにあり、jQueryと.innerHTMLの.Addclassで置き換えられ、.html(関数)を記述していると思います。誰かが私のためにこれを変換することができれば、私はいくつかの問題を抱えているjqueryにちょっと新しいので、それは素晴らしいだろう。

更新N1 *

この

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.9/angular.min.js"></script> 
<script> 
$(document).ready(function(){ 
    $("#forma").submit(function(){ 
     var ime=$("#ime").val(); 
     var priimek=$("#priimek").val(); 
     var stranka=$("#stranka").val(); 
     try{ 
     var kandidat= Kandidat(ime, priimek, stranka); 
     DodajKandidataNaPolje(kandidat); 
     $("#seznam").html(OblikujIzpis(PridobiPolje()); 
     $("#obvestila").html("Uspešen Vnos!"); 
     $("#obvestila").myClass("bg-success"); 
    } 
    catch(napaka){ 
     $("#obvestila").html(napaka.message); 
     $("#obvestila").myClass("bg-danger"); 

    } 

    $("#forma").reset(); 
} 
    $("#forma_isci").submit=function(){ 
     var iskani_niz=$("#iskaniNiz").val(); 
     $("#seznam").html(OblikujIzpis(iskani_niz)); 
     $("#obvestila").html("Rezultat iskanja po iskalnem nizu " + iskani_niz); 
     $("#obvestila").myClass("bg-info"); 
    } 
    $("#pobrisi".click=function(){ 
     IzbrisiPolje(); 
     $("#obvestila").html("Polje je bilo izbrisano!"); 
     $("#obvestila").myClass("bg-success"); 
     $("#seznam").html(""); 
     $("#forma").reset(); 
    } 
    } 
    }); 
}); 
</script> 

へのjQueryを変えIDがあります#を追加しました、そして.myClassに.addClassを変更しました。追加機能がまだ動作していません。しかし、他の機能が働いています。

機能。

var polje = []; 

function Kandidat(ime, priimek, stranka) { 
    if (ime ==="" || priimek === "") { 
     throw new Error("Podatki niso popolni!"); 
    } 
    else { 
     var id = polje.length + 1; 
     var oseba = {id:id, ime:ime, priimek:priimek, stranka:stranka}; 
     oseba.Izpis = function() { 
     return "(" + this.id + ")" + this.ime + " " + this.priimek + " pripada stranki " + this.stranka; 
    } 
    return oseba; 
    } 


} 

function DodajKandidataNaPolje(kandidat) { 
    polje.push(kandidat); 
    return true; 
} 

function PridobiPolje() { 
    return polje; 
} 

function OblikujIzpis(polje) { 
    var izpis = ""; 
    for (var i = 0; i < polje.length; i++) { 
     izpis = izpis + "<li>" + polje[i].Izpis() + "</li>"; 
    } 
    return izpis; 
} 

function Isci(iskalniNiz) { 
    var rezultat = []; 
    var oseba; 
    var vsebuje; 

    for (var i = 0; i < polje.length; i++) { 
     oseba = polje[i]; 
     vsebuje = oseba.ime.search(iskalniNiz); 
     if (vsebuje != -1) { 
      rezultat.push(oseba); 
     } 
     else{ 
      vsebuje = oseba.priimek.search(iskalniNiz); 
      if (vsebuje != -1) { 
       rezultat.push(oseba); 
      } 
      else{ 
       vsebuje = oseba.stranka.search(iskalniNiz); 
       if (vsebuje != -1) { 
        rezultat.push(oseba); 
       } 
      } 
     } 
    } 

    return rezultat; 
} 

function IzbrisiPolje() { 
    polje = []; 
    return true; 
} 

答えて

3

jQueryでは、要素にアクセスするにはセレクタを使用する必要があります。あなたのケースでは、フォームはformaのIDを持ちます(これはjQueryセレクタでは#の前にプレフィックスを付けています)。フォームにアクセスするには、次の手順を実行する必要があります。

変更この:これに

$("forma").submit(function(){ 

$("#forma").submit(function(){ 

どこでも他にあなたのコード内の要素にアクセスするためのjQueryを使用します同様に変更する必要があります。 idsには#myid、クラスには.myclassを使用してください。詳細については、thisを参照してください。スタートだ

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
    var forma = $('#forma'); 

    forma.submit(function(){ 
     var ime=$("#ime").val(); 
     var priimek=$("#priimek").val(); 
     var stranka=$("#stranka").val(); 
     try{ 
      var kandidat= Kandidat(ime, priimek, stranka); 
      DodajKandidataNaPolje(kandidat); 
      $("#seznam").html(OblikujIzpis(PridobiPolje()); 
      $("#obvestila").html("Uspešen Vnos!"); 
      $("#obvestila").addClass("bg-success"); 
     } catch(napaka){ 
      $("#obvestila").html(napaka.message); 
      $("#obvestila").addClass("bg-danger"); 

     } 

     forma[0].reset(); 
    }); 

    $("#forma_isci").submit(function(){ 
     var iskani_niz=$("#iskaniNiz").val(); 
     $("#seznam").html(OblikujIzpis(iskani_niz)); 
     $("#obvestila").html("Rezultat iskanja po iskalnem nizu " + iskani_niz); 
     $("#obvestila").addClass("bg-info"); 
    }); 

    $("#pobrisi").click(function(){ 
     IzbrisiPolje(); 
     $("#obvestila").html("Polje je bilo izbrisano!"); 
     $("#obvestila").addClass("bg-success"); 
     $("#seznam").html(""); 
     forma[0].reset(); 
    }); 
}); 
</script> 
+1

はここで固定いくつかのもので(のみjQueryのセクション)あなたのコードです。コードがもう少し間違っています。 –

+0

私はすべてを修正することはできません。 –

+1

なぜですか?それは問題ではありませんか? –

関連する問題