Function ها در جاوا اسکریپت

1 هفته پیش
توسط آرمین امیری نسب آپدیت شد
آرمین امیری نسب ( 8870 تجربه )
1 هفته پیش
تخصص : توسعه دهنده فرانت اند

حدود 40 div دارم و قراره که زمانی که روی هر کدوم کلیک شد یک prompt باز بشه و بعد ورودی در متن div قرار بگیره

حالا من که نباید 40 function تعریف کنم چاره کار چیه

@ali.bayat
@hesammousavi
@hossein.r.1442

بهترین پاسخ انتخاب شده توسط آرمین امیری نسب
میلاد
1 هفته پیش

بفرمایید، برای ده تا div نوشتم براتون، برای 40 تاش هم فرق خاصی نداره با این، با یک حلقه پیاده سازی میشه:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>

        <style>
            * {
                box-sizing: border-box;
            }
            body {
                direction: rtl;
            }
            .content {
                display: flex;
                flex-direction: column;
            }

            .content__1,
            .content__2,
            .content__3 {
                padding: 20px;
                font-size: 30px;
                text-align: center;
            }
            .content__1 {
                background-color: rgb(118, 218, 118);
            }
            .content__2 {
                background-color: rgb(149, 149, 247);
            }
            .content__3 {
                background-color: rgb(247, 195, 100);
            }
        </style>
    </head>
    <body>
        <div class="content">
            <div class="content__1 prompt-text">1</div>
            <div class="content__2 prompt-text">2</div>
            <div class="content__3 prompt-text">3</div>
            <div class="content__1 prompt-text">4</div>
            <div class="content__2 prompt-text">5</div>
            <div class="content__3 prompt-text">6</div>
            <div class="content__1 prompt-text">7</div>
            <div class="content__2 prompt-text">8</div>
            <div class="content__3 prompt-text">9</div>
            <div class="content__1 prompt-text">10</div>
        </div>

        <script>
            let divs = document.querySelectorAll('.prompt-text');

            for(let i = 0; i < divs.length; i++) {
                divs[i].addEventListener('click', e => {
                    let x = prompt('ی چیزی برام بنویس');
                    divs[i].textContent = x;
                });
            }
        </script>
    </body>
</html>
سید حسین رضوی ( 37741 تجربه )
1 هفته پیش
تخصص : برنامه نویس وب و طراح رابط کاربری

برای همشون یه کلاس قرار بده و بعد یه تابع بنویس و به وسیله this مقدار دهی کن ورودی ها رو

آرمین امیری نسب ( 8870 تجربه )
1 هفته پیش
تخصص : توسعه دهنده فرانت اند

تقریبا متوجه شدم ولی اگه میشه کد بزارید
@hossein.r.1442

سید حسین رضوی ( 37741 تجربه )
1 هفته پیش
تخصص : برنامه نویس وب و طراح رابط کاربری

یه چیزی مثل این تقریبا

<div class="test">Text 1</div>
<div class="test">Text 2</div>

و برای اسکریپت هم

$(document).ready(function (){
  $('.test').click(function(){
    alert($(this).html());
  });
});
آرمین امیری نسب ( 8870 تجربه )
1 هفته پیش
تخصص : توسعه دهنده فرانت اند

این که Jquery
@hossein.r.1442

میلاد ( 145480 تجربه )
1 هفته پیش
تخصص : طراح رابط کاربری - Front-End

بفرمایید، برای ده تا div نوشتم براتون، برای 40 تاش هم فرق خاصی نداره با این، با یک حلقه پیاده سازی میشه:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>

        <style>
            * {
                box-sizing: border-box;
            }
            body {
                direction: rtl;
            }
            .content {
                display: flex;
                flex-direction: column;
            }

            .content__1,
            .content__2,
            .content__3 {
                padding: 20px;
                font-size: 30px;
                text-align: center;
            }
            .content__1 {
                background-color: rgb(118, 218, 118);
            }
            .content__2 {
                background-color: rgb(149, 149, 247);
            }
            .content__3 {
                background-color: rgb(247, 195, 100);
            }
        </style>
    </head>
    <body>
        <div class="content">
            <div class="content__1 prompt-text">1</div>
            <div class="content__2 prompt-text">2</div>
            <div class="content__3 prompt-text">3</div>
            <div class="content__1 prompt-text">4</div>
            <div class="content__2 prompt-text">5</div>
            <div class="content__3 prompt-text">6</div>
            <div class="content__1 prompt-text">7</div>
            <div class="content__2 prompt-text">8</div>
            <div class="content__3 prompt-text">9</div>
            <div class="content__1 prompt-text">10</div>
        </div>

        <script>
            let divs = document.querySelectorAll('.prompt-text');

            for(let i = 0; i < divs.length; i++) {
                divs[i].addEventListener('click', e => {
                    let x = prompt('ی چیزی برام بنویس');
                    divs[i].textContent = x;
                });
            }
        </script>
    </body>
</html>
برای ارسال پاسخ باید وارد سایت شوید