سلام. در قسمت های آخر این جلسه, فرمودین 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 اینپوت مورد نظر را با استفاده از سایر توابع موجود بگیرید و بررسی کنید آیتا تغییر اعمال شده است یا خیر؟