🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ همایون
آیا ویژگی value به فرم استاندارد توسط setAttribute قابل تغییر است؟
حسین دادخواه حل شده توسط حسین دادخواه

سلام. در قسمت‌های آخر این جلسه, فرمودین value به فرم استاندارد توسط setAttribute قابل تغییر نیست. توی انجمن هم دوستی زده بود که موقع تغییر, حالت غیر استاندارد از value ایجاد میشه. اگر غیر استاندارد باشه پس نباید بتونیم به صورت Object Property بهش دسترسی داشته باشیم ولی میشه. میشه توضیح بدید به چه صورت هست؟

<!DOCTYPE html>
<html>
    <head>
        <title>آموزش استفاده از attribute‌ها در DOM در جاوا اسکریپت</title>
    </head>
    <body style="text-align: center;">
        <h1>سلام به همه دانشجویان عزیز و برنامه‌نویسان حرفه‌ای آینده</h1>
        <hr />
        <div id="myDiv" class="test-calss" data-developer="Mehrdad">
            <input type="checkbox" checked test="atr" />
        </div>
        <script>
        </script>
    </body>
</html>
'use strict';
// console.log(myDiv.childNodes[1].type);
// console.log(myDiv.childNodes[1].getAttribute('test'));
// myDiv.childNodes[1].setAttribute('new-atr', 'my-atr');
// myDiv.childNodes[1].setAttribute('new-atr', 'my-atr2');
let input = myDiv.childNodes[1];
console.log(input.value); // 1
input.value = "newVal";
console.log(input.value); // 2
input.setAttribute('value', "newVal2");
console.log(input.value); // 3
// console output
1 => on
2 => newVal
3 => newVal2

 

سلام

امیدوارم سوال را درست متوجه شده باشم!

ببینید value در شی input تغییر میکنه ولی داخل DOM این تغییر اعمال نمیشه

یعنی اینکه شما به جای اینکه input.value را لاگ کنید هر بار بعد از تغییر مجدد مقدار value اینپوت مورد نظر را با استفاده از سایر توابع موجود بگیرید و بررسی کنید آیتا تغییر اعمال شده است یا خیر؟

بهترین پاسخ
حسین دادخواه ۲۰ مهر ۱۴۰۰، ۰۱:۰۴