نمایش نتایج 1 تا 11 از 11

نام تاپیک: مشکل در استفاده از دو for در جاوا اسکریپت

  1. #1

    مشکل در استفاده از دو for در جاوا اسکریپت

    وقتی می خوام دو متغیر رو بفرستم در قالب دو innerhtml هر دو توسط for دومی اعمال میشه

    من چطور می تونم به ازای هر innethtml براش for مربوط به خودش رو بفرستم

    یه مثال می زنم

    console.log = function(msg) {document.body.innerHTML += '<p>' + msg + '</p>';};


    var funcs = {};
    for (var i = 0; i < 3; i++) {
    funcs[i] = wrapper(i);
    }
    for (var j = 0; j < 3; j++) {
    funcs[j]();
    }
    //creates a separate environment for the inner function
    function wrapper(ilocal) {
    return function() { //return the inner function
    console.log("My value: " + ilocal);
    };
    }

    چطور میشه کد رو به صورتی در آورد که هر for به طور جداگانه مقدار مربوط به خودش رو نشون بده

  2. #2

    نقل قول: مشکل در استفاده از دو for در جاوا اسکریپت

    از عزیزان کسی راهنمایی نداره ؟

  3. #3
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: مشکل در استفاده از دو for در جاوا اسکریپت

    نقل قول نوشته شده توسط fun_9990 مشاهده تاپیک
    از عزیزان کسی راهنمایی نداره ؟
    چرا .... سوالت رو بد توضیح دادی قابل فهم نیست که چی داری میپرسی
    استفاده از http://jsfiddle.net برای نوشتن و ارائه کد هم میتونه به درک سوال کمک بکنه

  4. #4

    نقل قول: مشکل در استفاده از دو for در جاوا اسکریپت

    نقل قول نوشته شده توسط plague مشاهده تاپیک
    چرا .... سوالت رو بد توضیح دادی قابل فهم نیست که چی داری میپرسی
    استفاده از http://jsfiddle.net برای نوشتن و ارائه کد هم میتونه به درک سوال کمک بکنه
    حق با شماست
    یک مثال دیگه می زنم که قابلیت پاسخ به قول شما داشته باشه
    فرض کنید کد html ما این هست

    <input type="button" value="Test" onclick="nemi()"/>
    <br/>
    <input type="text" id="red1" />
    <br />
    <input type="text" id="red2" />

    و کد جاوااسکریپت ما این هست

    function nemi()
    {
    var myida = document.querySelectorAll("[id^=red]");
    var myidb = document.querySelectorAll("[id^=red]");
    for (var j = 0; j < myida.length; j++)
    {
    myida[j].value = 1;
    }
    for (var n = 0; n < myidb.length; n++)
    {
    myidb[n].value = 2;
    }}


    الان اینجا خروجی for اول به دلیل آخرین حلقه ای که برنامه می خونه عملا حذف میشه و نمی شه خروجی اون رو مشاهده کرد
    آخرین ویرایش به وسیله fun_9990 : سه شنبه 26 اردیبهشت 1396 در 23:20 عصر

  5. #5
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: مشکل در استفاده از دو for در جاوا اسکریپت

    مشکل کد شما ربطی به حلقه ها ندارن مشکل اینه که سلکتوراتون دقیقا یکی هستن
    در نتیجه توی هر دو متغیر دارن به المنت های یکسانی اشاره میکنن
    به طور خلاصه داری میگی که توی اون 2 تا فیلد 1 بریز بعد میگی توی اون 2 فیلد 2 بریز انتظار دارید چه اتفاقی بیفته ؟ توی اولی 1 و توی دومی 2 ریخته بشه ؟
    https://jsfiddle.net/196fsvq1/

  6. #6

    نقل قول: مشکل در استفاده از دو for در جاوا اسکریپت

    نقل قول نوشته شده توسط plague مشاهده تاپیک
    مشکل کد شما ربطی به حلقه ها ندارن مشکل اینه که سلکتوراتون دقیقا یکی هستن
    در نتیجه توی هر دو متغیر دارن به المنت های یکسانی اشاره میکنن
    به طور خلاصه داری میگی که توی اون 2 تا فیلد 1 بریز بعد میگی توی اون 2 فیلد 2 بریز انتظار دارید چه اتفاقی بیفته ؟ توی اولی 1 و توی دومی 2 ریخته بشه ؟
    https://jsfiddle.net/196fsvq1/
    درسته اما اگر هر سلکتور زیر مجموعه از یک کلاس باشه چی ؟ اما اینجا هم همون نتیجه رخ میده
    لطفا به این کد نگاه کنید


    <input type="button" value="Test" onclick="nemi()"/>
    <div class="d1">
    <input type="text" id="red1" />
    </div>
    <div class="d2">
    <input type="text" id="red2" />
    </div>
    <script>
    function nemi()
    {
    var d1 = document.getElementsByClassName('d1')[0].childNodes;
    var d2 = document.getElementsByClassName('d2')[0].childNodes;
    var myida = document.querySelectorAll("[id^=red]");
    var myidb = document.querySelectorAll("[id^=red]");
    for (var i=0; i < d1.length; i++){
    for (var j = 0; j < myida.length; j++)
    {
    myida[j].value = 1;
    }
    }
    for (var m=0; m < d2.length; m++){
    for (var n = 0; n < myidb.length; n++)
    {
    myidb[n].value = 2;
    }
    }
    </script>



    برای حالتی که سلکتور پسر زیر مجموعه کلاس پدر باشه آیا میشه برای دو سلکتور با تعریف همسان کاری کرد که for جواب یکسان نده ؟

    آیا با تغییر در for امکان پذیر هست ؟

    اگر هست جوابش به چه صورت می تونه باشه . و اگر نه آیا باید دسترسی از کلاس پدر داده بشه ؟ ( به چه صورت )

    ممنون
    آخرین ویرایش به وسیله fun_9990 : پنج شنبه 28 اردیبهشت 1396 در 19:54 عصر

  7. #7
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: مشکل در استفاده از دو for در جاوا اسکریپت

    سلکتور شما تو این مثال هیچ فرقی نکرده
    به هیچ وجه زیر مجموعه کلاس نرفته اصلا
    تنها کاری که کردی شما یه حلقه اضافه کردی به هر حلقه از 2 تای قبلی
    به طور خلاصه داری میگی برای 1 بار توی 2 فیلد بریز 1 - برای 1 بار توی 2 فیلد بریز 2
    مشکل شما اون سلکتور red هستش که نوشتی اگه میخای نتیجه متفاوت بگیری باید اون سلکتور رو عوض کنی مثل این
    https://jsfiddle.net/196fsvq1/1/

  8. #8

    نقل قول: مشکل در استفاده از دو for در جاوا اسکریپت

    نقل قول نوشته شده توسط plague مشاهده تاپیک
    سلکتور شما تو این مثال هیچ فرقی نکرده
    به هیچ وجه زیر مجموعه کلاس نرفته اصلا
    تنها کاری که کردی شما یه حلقه اضافه کردی به هر حلقه از 2 تای قبلی
    به طور خلاصه داری میگی برای 1 بار توی 2 فیلد بریز 1 - برای 1 بار توی 2 فیلد بریز 2
    مشکل شما اون سلکتور red هستش که نوشتی اگه میخای نتیجه متفاوت بگیری باید اون سلکتور رو عوض کنی مثل این
    https://jsfiddle.net/196fsvq1/1/
    مرسی شما دسترسی مستقیم دادین ( اما من اینقد هم کد ساده رو تصور نمی کنم )
    اما در این صورت یعنی اگر هر دو Red باشن آیا باید زیر مجموعه کلاس باشن
    کاری که در مثال دوم کردم مگه زیر مجموعه کلاس نشدن ؟ اشکال کارم کجاست ؟ ( مگه نه اینه که وقتی for برای سلکتور داخل for کلاس آوردم و آخر سر هم for والد رو بستم )
    شما فرض کنید اون دو تا red همسان باشن

    حالا اینی که گفتم یک حالت و حالت دوم هم اینکه اگه ما اصلا به id ها کاری نداشته باشیم و صرفا بخوایم با class خروجی بگیریم چی
    اون موقع چطور باید بنویسیم ؟

  9. #9
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: مشکل در استفاده از دو for در جاوا اسکریپت

    حلقه for مالکیت یا زیر مجموعه بودن المنت ها رو تایین نمیکنه فقط یه حلقست
    شما وقتی میگی
    for (var i=0; i < d1.length; i++)

    از نظر برنامه داری میگی
    for (var i=0; i < 1; i++)


    هیچ ربطی به اون المنت پدر نداره چون d1.length تبدیل میشه به یک عدد
    شما اگه میخای ببری زیمجموع دیو ها بزاری باید سلکتور red رو تغییر بدی من همیشه با jquery کار میکنم و مطمئن نیستم با جاوا اسکریپت خالی سلکتورش چجوری میشه ممکنه اررور سینتکس داشته باشم ولی بیه همچین چیزی باید بشه

    var myid1  = document.getElementsByClassName("d1")[0].getElementById("red1");




    با جیکوئری هم که این میشه


    var myid1 = $('.b1').find('#red1');


    اگرم بخای صرفا با کلاس بگیریشون اینجوری میشه

    var myid1 = $('.b1').find('div');


    ولی خب این یکم باید حواست باشه چون همه div های توی کلاس رو میگیره

  10. #10

    نقل قول: مشکل در استفاده از دو for در جاوا اسکریپت

    نقل قول نوشته شده توسط plague مشاهده تاپیک
    حلقه for مالکیت یا زیر مجموعه بودن المنت ها رو تایین نمیکنه فقط یه حلقست ...
    خیلی ممنون از توضیحاتتون من پون قبلا اینو تست کرده بودم نتیجه نداد اومدم حلقه تو در تو کردم که بنا به چیزی که شما میگید در این مورد استنباطم غلط بودهحالا اگر querySelectorAll باشه چی ؟ ( فرقی نمی کنه جاوا اسکریپت یا جی کیوئری اگر هر کدوم رو بگید معادلشو پیدا می کنم ) می تونه به این صورت باشه ؟
    var myid1  = document.getElementsByClassName("d1")[0].querySelectorAll("[id^=red]");
    به نظرم اصلا نمیشه . یا شایدم اشتباه می کنم . ( به هر حال من هدفم اینه دسترسی داشته باشم در صورتی که هر دو id یکسان هست و اگر تغییرش دادم مجبور نشم هر بار id رو برای JS عوض کنم و از querySelectorAll استفاده کردم )

  11. #11
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: مشکل در استفاده از دو for در جاوا اسکریپت

    بله اینم کار میکنه لینک رو نگاه کنید
    https://jsfiddle.net/196fsvq1/2/

تاپیک های مشابه

  1. سوال: استفاده از دوربین موبایل توسط جاوا اسکریپت
    نوشته شده توسط h_nikan در بخش JavaScript و Framework های مبتنی بر آن
    پاسخ: 1
    آخرین پست: جمعه 21 آبان 1395, 16:35 عصر
  2. پاسخ: 3
    آخرین پست: چهارشنبه 28 مرداد 1394, 22:30 عصر
  3. مبتدی: مشکل در استفاده از دو قطعه کد جاوا اسکریپت در صفحه
    نوشته شده توسط f.nabavi در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: شنبه 25 آبان 1392, 11:18 صبح
  4. سوال: مشکل با استفاده از دو جدول برای ذخیره فاکتور- حرفه ای ها بیان
    نوشته شده توسط black_mask در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 5
    آخرین پست: شنبه 14 بهمن 1391, 13:13 عصر
  5. مبتدی: مشکل در جاوا اسکریپت
    نوشته شده توسط teymoorei در بخش JavaScript و Framework های مبتنی بر آن
    پاسخ: 11
    آخرین پست: یک شنبه 28 آبان 1391, 12:49 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •