Szintaktikai hiba 9 sor 19 karakter

Szintaktikai hiba 9 sor 19 karakter
2020-08-03T08:43:42+02:00
2020-08-07T08:53:43+02:00
2022-10-15T21:26:00+02:00
Oranky
Amikor az index.html probalom megnyitni az open with Live server egy szintaktikai hibat jelez a 9 sor 19 karakter . Mi a hiba? 


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Felhasználók</title>
    <link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css">
    <link rel="stylesheet" href="css/style.css">
</head>
<body>
    <div class="container">
        <div class="row">
            <div class="col-2"></div>
            <div class="col-8">
                <button id="getDataBtn" class="btn btn-block btn-primary">
                    Get Users
                </button>
            </div>
            <div class="col-2"></div>
        </div>
        <div class="row">
            <div class="col-2"></div>
            <div class="col-8">
                <table id="userTable" class="table table-stripped">
                    <thead>
                        <tr>
                        <th>#</th>
                        <th>Name</th>
                        <th>Email</th>
                        <th>actions</th>
                    </tr>
                    </thead>
                    <tbody>
                    
                    </tbody>


                </table>
                
               
            </div>
            <div class="col-2"></div>
           
        </div>
    </div>
    <script src="js/main.js"></script>
</body>
</html>
Mutasd a teljes hozzászólást!
Lehet! Elkuldom a main.js-et amire hivatkozas tortenik :


// Get data from the server.
function getServerData(url) {
    let fetchOptions={
        method:"GET",
        mode:"cors",
        cache:"no-cache"
    };
    return fetch(url, fetchOptions).then(
        response => response.json(),
        err => console.error(err)
    
    );
}
    document.querySelector("#getDataBtn").addEventListener("click", function(){
        getServerData("http://localhost:3000/comments").then(
            data => fillDataTable(data, "userTable")
        );
          
    });



    // Fill table with server data.
function fillDataTable(data, tableID) 
let table = document.querySelector('#${tableID}');
if(!table) {
    console.error('Table"${tableID}" is not found'); 
    return;
}


//Add new user row to the table.
let newRow=neUserRow(data[0]);
table.appendChild(newRow);


let tBody=table.querySelector("tbody");
for (let row of data) {
    let tr=createanyElement("tr");
    for (let k in row) {
        let td=createanyElement("td");
        td.innerHTML=row[k];
        tr.parent.appendChild(td);
   let btnGroup=createBtnGroup();
tr.appendChild(btnGroup);
tbody.appendChild(tr);


}
}


function createanyElement(name, attributes) {
    let element=document.createElement(name);
    for (let k in attributes) {
        element.setAttributes(k, attributes[k]);
    }
    return element;
}


function createBtnGroup(){
    
    let group=createanyElement("div", {class:"btn btn-group"});
    let infoBtn=createanyElement("button", {class:"btn btn-info", onclick: "getInfo(this)" });
    infoBtn.innerHTML='<i class="fa fa-refresh" aria-hidden="true"></i></i>';
    let delBtn=createanyElement("button", {class:"btn btn-danger", onclick: "delRow(this)" });
    delBtn.innerHTML='<i class="fa fa-refresh" aria-hidden="true"></i>';
   
    group.appendChild(infoBtn);
    group.appendChild(delBtn);


    let td=createanyElement("td");
    td.appendChild(group);
    return td;


}


function delRow(btn) {
    let tr=btn.parentElement.parentElement.parentElement;
    
    let fetchOptions={
        method:"DELETE",
        mode:"cors",
        cache:"no-cache"
    };
    fetch('htto://localhost:3000/comments/${id}',fetchOptions).then(
        resp=>resp.json(),
        err=>console.error(err)
    ).then(
        data=>{


        }


    );
    
    //Create a New user
    function newUser(row) {
        let tr=createanyElement("tr");
        for (let k in {id: '', name:'',email:''}) {
            let td=createanyElement("td");
            let input=createanyElement("input",{
                class:"form-control",
                name:k
                }); 
                td.appendChild(input);
                tr.appendChild(td);
            }
            let newBtn=createanyElement("button",{
                class:"btn btn-succes",
                onclick: "createUser(this)"
            });
            newBtn.innerHTML=<i class="fa fa-plus-circle" aria-hidden="true"></i>;
            let td=createanyElement("td");
            td.appendChild(newBtn);
            tr.appendChild(td);


            return tr;
        }   
    function addUser(btn) {
let tr=btn.parentElement.parentElement;
let data=getRowData(tr);
}


console.log(data);
    }  
    function getRowData(tr){
        let inputs=tr.querySelectorAll("input.form-control");
        let data={};
        for (let i=0; i<inputs.length;i++){
            data[inputs.name]=inputs.value;
    }


    return data;
}
Mutasd a teljes hozzászólást!

  • A html kódban nem látok semmit.
    Nem lehet, hogy véletlenül a js-ben van a hiba?
    Mutasd a teljes hozzászólást!
  • Lehet kivonásjel az osztályok nevében (class="col-2")?
    Mutasd a teljes hozzászólást!
  • Miért ne lehetne kötőjel a class nevében?
    Mutasd a teljes hozzászólást!
  • Lehet. Igazából bármi lehet benne a szóközön kívül, mert az az elválasztó.
    Mutasd a teljes hozzászólást!
  • Ravasz. Akkor, gondolom, pont, kettőskereszt, macskaköröm, kettőspont és kapcsos zárójel is oké.
    Mutasd a teljes hozzászólást!
  • A html kód az jó, itt lehet lecsekkolin, directinput alapján:
    Ready to check - Nu Html Checker
    Mutasd a teljes hozzászólást!
  • Természetesen. Az, hogy jó ötlet-e, az egy másik kérdés (amire a válasz nem), de semmi akadálya nincsen.
    Mutasd a teljes hozzászólást!
  • Ha beszámoztad volna a sorokat, és ez lenne a kilencedik:

    <title>Felhasználók</title> ^
    akkor azt mondanám, hogy UTF8-at igértél, de nem azt adtál (hanem pl. ISO-8859-2-t)
    Mutasd a teljes hozzászólást!
  • Lehet! Elkuldom a main.js-et amire hivatkozas tortenik :


    // Get data from the server.
    function getServerData(url) {
        let fetchOptions={
            method:"GET",
            mode:"cors",
            cache:"no-cache"
        };
        return fetch(url, fetchOptions).then(
            response => response.json(),
            err => console.error(err)
        
        );
    }
        document.querySelector("#getDataBtn").addEventListener("click", function(){
            getServerData("http://localhost:3000/comments").then(
                data => fillDataTable(data, "userTable")
            );
              
        });



        // Fill table with server data.
    function fillDataTable(data, tableID) 
    let table = document.querySelector('#${tableID}');
    if(!table) {
        console.error('Table"${tableID}" is not found'); 
        return;
    }


    //Add new user row to the table.
    let newRow=neUserRow(data[0]);
    table.appendChild(newRow);


    let tBody=table.querySelector("tbody");
    for (let row of data) {
        let tr=createanyElement("tr");
        for (let k in row) {
            let td=createanyElement("td");
            td.innerHTML=row[k];
            tr.parent.appendChild(td);
       let btnGroup=createBtnGroup();
    tr.appendChild(btnGroup);
    tbody.appendChild(tr);


    }
    }


    function createanyElement(name, attributes) {
        let element=document.createElement(name);
        for (let k in attributes) {
            element.setAttributes(k, attributes[k]);
        }
        return element;
    }


    function createBtnGroup(){
        
        let group=createanyElement("div", {class:"btn btn-group"});
        let infoBtn=createanyElement("button", {class:"btn btn-info", onclick: "getInfo(this)" });
        infoBtn.innerHTML='<i class="fa fa-refresh" aria-hidden="true"></i></i>';
        let delBtn=createanyElement("button", {class:"btn btn-danger", onclick: "delRow(this)" });
        delBtn.innerHTML='<i class="fa fa-refresh" aria-hidden="true"></i>';
       
        group.appendChild(infoBtn);
        group.appendChild(delBtn);


        let td=createanyElement("td");
        td.appendChild(group);
        return td;


    }


    function delRow(btn) {
        let tr=btn.parentElement.parentElement.parentElement;
        
        let fetchOptions={
            method:"DELETE",
            mode:"cors",
            cache:"no-cache"
        };
        fetch('htto://localhost:3000/comments/${id}',fetchOptions).then(
            resp=>resp.json(),
            err=>console.error(err)
        ).then(
            data=>{


            }


        );
        
        //Create a New user
        function newUser(row) {
            let tr=createanyElement("tr");
            for (let k in {id: '', name:'',email:''}) {
                let td=createanyElement("td");
                let input=createanyElement("input",{
                    class:"form-control",
                    name:k
                    }); 
                    td.appendChild(input);
                    tr.appendChild(td);
                }
                let newBtn=createanyElement("button",{
                    class:"btn btn-succes",
                    onclick: "createUser(this)"
                });
                newBtn.innerHTML=<i class="fa fa-plus-circle" aria-hidden="true"></i>;
                let td=createanyElement("td");
                td.appendChild(newBtn);
                tr.appendChild(td);


                return tr;
            }   
        function addUser(btn) {
    let tr=btn.parentElement.parentElement;
    let data=getRowData(tr);
    }


    console.log(data);
        }  
        function getRowData(tr){
            let inputs=tr.querySelectorAll("input.form-control");
            let data={};
            for (let i=0; i<inputs.length;i++){
                data[inputs.name]=inputs.value;
        }


        return data;
    }
    Mutasd a teljes hozzászólást!
  • Lehet! Elkuldom a main.js-et amire hivatkozas tortenik :


    // Get data from the server.
    function getServerData(url) {
        let fetchOptions={
            method:"GET",
            mode:"cors",
            cache:"no-cache"
        };
        return fetch(url, fetchOptions).then(
            response => response.json(),
            err => console.error(err)
       
        );
    }
        document.querySelector("#getDataBtn").addEventListener("click", function(){
            getServerData("http://localhost:3000/comments").then(
                data => fillDataTable(data, "userTable")
            );
             
        });



        // Fill table with server data.
    function fillDataTable(data, tableID)
    let table = document.querySelector('#${tableID}');
    if(!table) {
        console.error('Table"${tableID}" is not found');
        return;
    }


    //Add new user row to the table.
    let newRow=neUserRow(data[0]);
    table.appendChild(newRow);


    let tBody=table.querySelector("tbody");
    for (let row of data) {
        let tr=createanyElement("tr");
        for (let k in row) {
            let td=createanyElement("td");
            td.innerHTML=row[k];
            tr.parent.appendChild(td);
       let btnGroup=createBtnGroup();
    tr.appendChild(btnGroup);
    tbody.appendChild(tr);


    }
    }


    function createanyElement(name, attributes) {
        let element=document.createElement(name);
        for (let k in attributes) {
            element.setAttributes(k, attributes[k]);
        }
        return element;
    }


    function createBtnGroup(){
       
        let group=createanyElement("div", {class:"btn btn-group"});
        let infoBtn=createanyElement("button", {class:"btn btn-info", onclick: "getInfo(this)" });
        infoBtn.innerHTML='<i class="fa fa-refresh" aria-hidden="true"></i></i>';
        let delBtn=createanyElement("button", {class:"btn btn-danger", onclick: "delRow(this)" });
        delBtn.innerHTML='<i class="fa fa-refresh" aria-hidden="true"></i>';
       
        group.appendChild(infoBtn);
        group.appendChild(delBtn);


        let td=createanyElement("td");
        td.appendChild(group);
        return td;


    }


    function delRow(btn) {
        let tr=btn.parentElement.parentElement.parentElement;
       
        let fetchOptions={
            method:"DELETE",
            mode:"cors",
            cache:"no-cache"
        };
        fetch('htto://localhost:3000/comments/${id}',fetchOptions).then(
            resp=>resp.json(),
            err=>console.error(err)
        ).then(
            data=>{


            }


        );
       
        //Create a New user
        function newUser(row) {
            let tr=createanyElement("tr");
            for (let k in {id: '', name:'',email:''}) {
                let td=createanyElement("td");
                let input=createanyElement("input",{
                    class:"form-control",
                    name:k
                    });
                    td.appendChild(input);
                    tr.appendChild(td);
                }
                let newBtn=createanyElement("button",{
                    class:"btn btn-succes",
                    onclick: "createUser(this)"
                });
                newBtn.innerHTML=<i class="fa fa-plus-circle" aria-hidden="true"></i>;
                let td=createanyElement("td");
                td.appendChild(newBtn);
                tr.appendChild(td);


                return tr;
            }  
        function addUser(btn) {
    let tr=btn.parentElement.parentElement;
    let data=getRowData(tr);
    }


    console.log(data);
        }  
        function getRowData(tr){
            let inputs=tr.querySelectorAll("input.form-control");
            let data={};
            for (let i=0; i<inputs.length;i++){
                data[inputs.name]=inputs.value;
        }


        return data;
    }
    Mutasd a teljes hozzászólást!
  • Lehet! Elkuldom a main.js-et is amire hivatkozas tortenik :


    // Get data from the server.
    function getServerData(url) {
        let fetchOptions={
            method:"GET",
            mode:"cors",
            cache:"no-cache"
        };
        return fetch(url, fetchOptions).then(
            response => response.json(),
            err => console.error(err)
       
        );
    }
        document.querySelector("#getDataBtn").addEventListener("click", function(){
            getServerData("http://localhost:3000/comments").then(
                data => fillDataTable(data, "userTable")
            );
             
        });



        // Fill table with server data.
    function fillDataTable(data, tableID)
    let table = document.querySelector('#${tableID}');
    if(!table) {
        console.error('Table"${tableID}" is not found');
        return;
    }


    //Add new user row to the table.
    let newRow=neUserRow(data[0]);
    table.appendChild(newRow);


    let tBody=table.querySelector("tbody");
    for (let row of data) {
        let tr=createanyElement("tr");
        for (let k in row) {
            let td=createanyElement("td");
            td.innerHTML=row[k];
            tr.parent.appendChild(td);
       let btnGroup=createBtnGroup();
    tr.appendChild(btnGroup);
    tbody.appendChild(tr);


    }
    }


    function createanyElement(name, attributes) {
        let element=document.createElement(name);
        for (let k in attributes) {
            element.setAttributes(k, attributes[k]);
        }
        return element;
    }


    function createBtnGroup(){
       
        let group=createanyElement("div", {class:"btn btn-group"});
        let infoBtn=createanyElement("button", {class:"btn btn-info", onclick: "getInfo(this)" });
        infoBtn.innerHTML='<i class="fa fa-refresh" aria-hidden="true"></i></i>';
        let delBtn=createanyElement("button", {class:"btn btn-danger", onclick: "delRow(this)" });
        delBtn.innerHTML='<i class="fa fa-refresh" aria-hidden="true"></i>';
       
        group.appendChild(infoBtn);
        group.appendChild(delBtn);


        let td=createanyElement("td");
        td.appendChild(group);
        return td;


    }


    function delRow(btn) {
        let tr=btn.parentElement.parentElement.parentElement;
       
        let fetchOptions={
            method:"DELETE",
            mode:"cors",
            cache:"no-cache"
        };
        fetch('htto://localhost:3000/comments/${id}',fetchOptions).then(
            resp=>resp.json(),
            err=>console.error(err)
        ).then(
            data=>{


            }


        );
       
        //Create a New user
        function newUser(row) {
            let tr=createanyElement("tr");
            for (let k in {id: '', name:'',email:''}) {
                let td=createanyElement("td");
                let input=createanyElement("input",{
                    class:"form-control",
                    name:k
                    });
                    td.appendChild(input);
                    tr.appendChild(td);
                }
                let newBtn=createanyElement("button",{
                    class:"btn btn-succes",
                    onclick: "createUser(this)"
                });
                newBtn.innerHTML=<i class="fa fa-plus-circle" aria-hidden="true"></i>;
                let td=createanyElement("td");
                td.appendChild(newBtn);
                tr.appendChild(td);


                return tr;
            }  
        function addUser(btn) {
    let tr=btn.parentElement.parentElement;
    let data=getRowData(tr);
    }


    console.log(data);
        }  
        function getRowData(tr){
            let inputs=tr.querySelectorAll("input.form-control");
            let data={};
            for (let i=0; i<inputs.length;i++){
                data[inputs.name]=inputs.value;
        }


        return data;
    }
    Mutasd a teljes hozzászólást!
  • Lehet! Tudnal segiteni lecsekkolni a main.js-t is.  Elkuldom a main.js-et amire hivatkozas tortenik :


    // Get data from the server.
    function getServerData(url) {
        let fetchOptions={
            method:"GET",
            mode:"cors",
            cache:"no-cache"
        };
        return fetch(url, fetchOptions).then(
            response => response.json(),
            err => console.error(err)
       
        );
    }
        document.querySelector("#getDataBtn").addEventListener("click", function(){
            getServerData("http://localhost:3000/comments").then(
                data => fillDataTable(data, "userTable")
            );
             
        });



        // Fill table with server data.
    function fillDataTable(data, tableID)
    let table = document.querySelector('#${tableID}');
    if(!table) {
        console.error('Table"${tableID}" is not found');
        return;
    }


    //Add new user row to the table.
    let newRow=neUserRow(data[0]);
    table.appendChild(newRow);


    let tBody=table.querySelector("tbody");
    for (let row of data) {
        let tr=createanyElement("tr");
        for (let k in row) {
            let td=createanyElement("td");
            td.innerHTML=row[k];
            tr.parent.appendChild(td);
       let btnGroup=createBtnGroup();
    tr.appendChild(btnGroup);
    tbody.appendChild(tr);


    }
    }


    function createanyElement(name, attributes) {
        let element=document.createElement(name);
        for (let k in attributes) {
            element.setAttributes(k, attributes[k]);
        }
        return element;
    }


    function createBtnGroup(){
       
        let group=createanyElement("div", {class:"btn btn-group"});
        let infoBtn=createanyElement("button", {class:"btn btn-info", onclick: "getInfo(this)" });
        infoBtn.innerHTML='<i class="fa fa-refresh" aria-hidden="true"></i></i>';
        let delBtn=createanyElement("button", {class:"btn btn-danger", onclick: "delRow(this)" });
        delBtn.innerHTML='<i class="fa fa-refresh" aria-hidden="true"></i>';
       
        group.appendChild(infoBtn);
        group.appendChild(delBtn);


        let td=createanyElement("td");
        td.appendChild(group);
        return td;


    }


    function delRow(btn) {
        let tr=btn.parentElement.parentElement.parentElement;
       
        let fetchOptions={
            method:"DELETE",
            mode:"cors",
            cache:"no-cache"
        };
        fetch('htto://localhost:3000/comments/${id}',fetchOptions).then(
            resp=>resp.json(),
            err=>console.error(err)
        ).then(
            data=>{


            }


        );
       
        //Create a New user
        function newUser(row) {
            let tr=createanyElement("tr");
            for (let k in {id: '', name:'',email:''}) {
                let td=createanyElement("td");
                let input=createanyElement("input",{
                    class:"form-control",
                    name:k
                    });
                    td.appendChild(input);
                    tr.appendChild(td);
                }
                let newBtn=createanyElement("button",{
                    class:"btn btn-succes",
                    onclick: "createUser(this)"
                });
                newBtn.innerHTML=<i class="fa fa-plus-circle" aria-hidden="true"></i>;
                let td=createanyElement("td");
                td.appendChild(newBtn);
                tr.appendChild(td);


                return tr;
            }  
        function addUser(btn) {
    let tr=btn.parentElement.parentElement;
    let data=getRowData(tr);
    }


    console.log(data);
        }  
        function getRowData(tr){
            let inputs=tr.querySelectorAll("input.form-control");
            let data={};
            for (let i=0; i<inputs.length;i++){
                data[inputs.name]=inputs.value;
        }


        return data;
    }
    Mutasd a teljes hozzászólást!
  • Elég lett volna egyszer, de azt sorszámokkal ellátva, a </>forráskód gomb használatával.
    Mutasd a teljes hozzászólást!
  • fetch('htto://localhost:3000/comments/${id}',
    Ez itt biztosan nem jó, viszont nem biztos, hogy ez okozza.
    Mutasd a teljes hozzászólást!
  • Ez vajon mitől nem UTF8?
    Mutasd a teljes hozzászólást!
  • (off: így látod képernyőn keresztül, hogy mi volt ott, ahonnan ezt beidézte a kolléga? Mert én nem.)
    Mutasd a teljes hozzászólást!
  • UTF8-at igértél, de nem azt adtál 

    Te állítasz valamit, én pedig ezt az állítást megkérdőjelezem, mert nem látom, milyen alapon feltételezel ilyet.

    Lehet vaktában találgatni, de minek?
    Mutasd a teljes hozzászólást!
  • Természetesen amit írtam, az a 'talán esetleg' prefixszel értendő. Nyilván a derék kérdező is rájön majd idővel, hogy csak ő tudja, hogy hány üres sor  van a fájlja elején, amik miatt mi nem tudhatjuk, hogy pontosan hol van a hiba.
    Mutasd a teljes hozzászólást!
  • Szia.
    Amit látok:

    első:
    function fillDataTable(data, tableID)   ===>> hiányzik a "{" nyitó zárójel

    második:
    ha figyeltél volna akkor elmondták az oktató videókban hogy  ->' az irásjel nem egyenlő -> ` -el az első a SHIFT+1, a második az ALTGR+7, az összes helyen ahol pl: 'Table"${tableID}" is not found' ilyenek használsz cseréld ki.

    harmadik:
    nem tudom hogy mit akarsz csinálni a comments- adatbázis táblában de köze nincs ahhoz amit szeretnél, neked az users tábla kell...csak figyelni kellene, ha nem akkor legalább a másolás mehetne.

    Gondolom itt sem várhatunk választ mint az előző megnyitott topicodban sem...

    Bocs hogy ilyen nyers voltam, de eszem megáll az ilyenektől...
    Mutasd a teljes hozzászólást!
  • function fillDataTable(data, tableID)   ===>> hiányzik a "{" nyitó zárójel

    Úgy ránézésre ez stimmelhet is, csak nem a 9-ik sor 19-ik karaktere, hanem inkább a 19-ik sor 9-ik karaktere (gondolom a let).
    Mutasd a teljes hozzászólást!
  • Koszonom kiprobalom. Bocs.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd