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

مشكلة في كود جافاسكريبت

Mohammad Jamal3

السؤال

انا شغال على java script بس لما اجي اعرف متغير باسم name ما بقبل تنفيذ الكود قصدي ما بشتغل صح مع انو كان قبل يشتغل بدون مشاكل شو المشكلة هي صورة لتوضيح وحتى لما احول المتغير name لتعليق بضل ظاهر على المتصفح مع العلم معمل تحديث بس على الفاضي 

Annotation 2024-05-29 170230.png

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

الكود يعمل بدون مشكلة ما الخطأ الذي يظهر لك ؟ غالبًا أنت نسيت حفظ الكود عليك الضغط على CTRL + S ثم إعادة تحديث الصفحة في المتصفح.

<body>
    <div style="text-align: center;">
        <input class="input-btn" type="text">
        <button class="submit-btn">submit</button>
        <h3 class="result-one"></h3>
        <h3 class="result-two"></h3>
    </div>

    <script>
        var name = ["Yarob", "Khaled", "Omer"]
        document.getElementsByClassName("result-one")[0].innerHTML = name
        document.getElementsByClassName("submit-btn")[0].addEventListener("click", function(){
            var school = document.getElementsByClassName("input-btn")[0].value
            for(var student of name){
                if(student == school){
                    document.getElementsByClassName("result-two")[0].innerHTML = `${school} yas`
                    break
                }
                document.getElementsByClassName("result-two")[0].innerHTML = `${school} no`
            }
        })
    </script>
</body>
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

صديقي على الفاضي هي فيديو توضيحي واذا انتبهت لما اغير اسم var من name لاي اسم ثاني وما اغير document الخاص في بضل محتوى var ظاهر على المتصف حتى لو عملت ctrl+s لل vs code وعملت ctrl +r للمتصفح

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 2 دقائق مضت قال Mohammad Jamal3:

صديقي على الفاضي هي فيديو توضيحي واذا انتبهت لما اغير اسم var من name لاي اسم ثاني وما اغير document الخاص في بضل محتوى var ظاهر على المتصف حتى لو عملت ctrl+s لل vs code وعملت ctrl +r للمتصفح

لاحظ أن وسم <script> عندك موجود بعد علامة إغلاق </body>، وهذا شيء خاطئ. المتصفح لا يقوم بتشغيل أي شيء خارج <body>. لذلك، يرجى إدخال <script> في المكان المناسب:

<body>
<!-- ....محتوى الصفحة -->
<script>
     // ...محتوى السكربت
</script>
</body>

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 8 دقائق مضت قال Mohammad Jamal3:

صديقي على الفاضي هي فيديو توضيحي واذا انتبهت لما اغير اسم var من name لاي اسم ثاني وما اغير document الخاص في بضل محتوى var ظاهر على المتصف حتى لو عملت ctrl+s لل vs code وعملت ctrl +r للمتصفح

الكود الذي ارفقته لك يعمل بشكل سليم، لم ألحظ في الصورة الأولى لديك أنك كتبت كود جافاسكريبت خارج وسم body فعليك كتابة جافاسكريبت في عنصر script ونضعه في body أو head

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

تفهمت ما تقصد، المشكلة في استخدامك لاسم المتغير name حيث يتم الخلط بينه وبين خاصية name في الكائن العالمي window ما يسبب طباعة التكرار على الأسماء في المصفوفة بالشكل التالي :

Y
a
r
o
b
,
K
h
a
l
e
d
,
O
m
e
r

لذا لو قمت بتغيير اسم المتغير إلى names مثلاً سيتم حل المشكلة ويتم طباعة yes أو قم باستخدام const بدلاً من var 

<body>
    <div style="text-align: center;">
        <input class="input-btn" type="text">
        <button class="submit-btn">submit</button>
        <h3 class="result-one"></h3>
        <h3 class="result-two"></h3>
    </div>


</body>

    <script>
        var names = ["Yarob", "Khaled", "Omer"]
        document.getElementsByClassName("result-one")[0].innerHTML = names
        document.getElementsByClassName("submit-btn")[0].addEventListener("click", function(){
            var school = document.getElementsByClassName("input-btn")[0].value
            for(var student of names){
              console.log(student)
                if(student === school){
                    document.getElementsByClassName("result-two")[0].innerHTML = `${school} yas`
                   break
                }
                document.getElementsByClassName("result-two")[0].innerHTML = `${school} no`
            }
        })
    </script>

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 16 دقائق مضت قال Mohammad Jamal3:

افهمت عليك بس اسؤال ليش قبل يومين كان يتعامل مع name على انها اسم var بدون مشاكل وهسى صار لازم اختار اسم ثاني 

  ربما استخدمت let أو const في تعريف اسم المتغير، فلهما نطاق كتلة block scope أي أنهما يكونان مرئيين فقط داخل الكتلة التي تم تعريفهما فيها.

بينما تعريف متغير باستخدام var خارج أي كتلة كود { } يتم اعتباره متغيرًا عالميًا global، بمعنى يمكن الوصول إليه من أي مكان في الكود (سواء داخل دوال أو خارجها) ويصبح جزءًا من كائن window في المتصفحات window.name

والمشكلة أنه يوجد خاصية باسم name في الكائن العالمي window ولم يعد يتم دعمها في المتصفحات حاليًا.

على العكس بتعريف متغير باستخدام const أو let في النطاق العالمي، فإنه لا يصبح جزءًا من كائن window، ويتم تعريفه في نطاق الكتلة block scope الخاص بالوحدة النمطية module scope أو النص البرمجي script scope.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...