اذهب إلى المحتوى

السؤال

نشر

let title = document.getElementById('title');
let price = document.getElementById('price');
let taxes = document.getElementById('taxes');
let ads = document.getElementById('ads');
let discount = document.getElementById('discount');
let total = document.getElementById('total');
let count = document.getElementById('count');
let category = document.getElementById('category');
let submit = document.getElementById('submit');

function getTotal() {

    if (price.value != '') {
        let result = (+price.value + +taxes.value + +ads.value)
            - +discount.value;
        total.innerHTML = result;
        total.style.background = '#040';

    } else {
        total.innerHTML = '';
        total.style.background = '#a00';


    }
}

function updataData() {

}




let dataPro;
if (localStorage.product != null) {
    dataPro = JSON.parse(localStorage.product)
} else {
    dataPro = [];
}


submit.onclick = function () {
    let newPro = {

        title: title.value,
        price: price.value,
        taxes: taxes.value,
        ads: ads.value,
        discount: discount.value,
        total: total.innerHTML,
        count: count.value,
        category: category.value,
    }

    dataPro.push(newPro);
    localStorage.setItem('product', JSON.stringify(dataPro))

    clearData()
    showData()
}



function clearData() {

    title.value = '';
    price.value = '';
    taxes.value = '';
    ads.value = '';
    discount.value = '';
    total.innerHTML = '';
    count.value = '';
    category.value = '';
}
function showData() {
    let table = '';
    for (let i = 0; i < dataPro.length; i++) {
        table += `
         <tr>
                                    <td>${i}</td>
                                    <td>${dataPro[i].title}</td>
                                    <td>${dataPro[i].price}</td>
                                    <td>${dataPro[i].taxes}</td>
                                    <td>${dataPro[i].ads}</td>
                                    <td>${dataPro[i].discount}</td>
                                    <td>${dataPro[i].category}</td>
                                    <td>${dataPro[i].total}</td>
                                    <td><button id="updat">update</button></td>
                                    <td><button onclick="deleteData(${i})" id="delete" onclick="deleteData(i)">delete</button></td>
                                </tr>
        `
        console.log(table)
    }

    document.getElementById('tbody').innerHTML = table;
    let btnDelete = document.getElementById('deleteAll');
    if (dataPro.length > 0) {
        btnDelete.innerHTML =
            <button onclick="deletAll()"> delete All</button>
    } else {
        btnDelete.innerHTML = '';
    }
}
howData()
function deleteData(i) {
    console.log(i)

}

function deletAll() {
    localStorage.clear()
    dataPro.splice(0)
    showData()
}

jj.jsstyle.css

index.html

Recommended Posts

  • 0
نشر

يوجد لديكِ بعض الأخطاء في ملف index.html  و jj.js .

أولا في ملف index.html في سطر 60 لقد كتبتِ كلمة di ولكن الصحيح هو id هكذا :

<tbody id="tbody">

أما في ملف jj.js يوجد خطأين .

 في سطر 100 هنا :

بتاريخ 13 دقائق مضت قال خديجة الفيفي:
            <button onclick="deletAll()"> delete All</button>

يجب وضع هذا السطر بين علامتي إقتباس لأنه لا يمكن كتابة كود html في ملف js هكذا :

`<button onclick="deletAll()"> delete All</button>`

وفي سطر 105 كتبتي howData ولكن الدالة الصحيحة هي showData :

showData()

الآن سيعمل كل شئ بشكل صحيح.

index.html jj.js

  • 0
نشر

السلام عليكم ورحمة الله،

في ملف jj.js  في السطر howData() لديك خطأ إملائي في اسم الدالة  فقد كتبت howData() بدلا من showData() مما يسبب خطأ لأن الدالة غير موجودة أصلا لذا قم باستبدالها ب:

showData()

وأيضا في السطر:

btnDelete.innerHTML = <button...>

هنا الكود يحاول وضع HTML مباشرة بدون علامات اقتباس خلفية أو ما يعرف ب (template literals) مما سيسبب syntax error لذا استبدل:

btnDelete.innerHTML =
    <button onclick="deletAll()"> delete All</button>
btnDelete.innerHTML = `<button onclick="deletAll()">delete All</button>`

وأيضا هنا في دالة deleteData(i) الدالة هنا فارغة ولا تفعل شيء سوى طباعة الرقم في console بينما المفترض أن تحذف العنصر من المصفوفة و localStorage وتحدث الجدول أي بدلا من:

function deleteData(i) {
    console.log(i)
}

يمكنك تعديلها كالتالي:

function deleteData(i) {
    dataPro.splice(i, 1);
    localStorage.setItem('product', JSON.stringify(dataPro));
    showData();
}

وأما في ملف index.html  في السطر:

<tbody di="tbody">

لديك خطأ إملائي في الخاصية فقد كتبت di بدلا من id مما يجعل JavaScript لا يستطيع العثور على العنصر عند استخدام:

document.getElementById('tbody')

أي بدلا من:

<tbody di="tbody">

عدله ليصبح:

<tbody id="tbody">

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...