নিম্নলিখিতগুলি আমার জন্য কেন কাজ করে না?
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>
নিম্নলিখিতগুলি আমার জন্য কেন কাজ করে না?
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>
উত্তর:
কারণ আপনার স্ক্রিপ্টটি আগে চালিত হয় পৃষ্ঠায় লেবেল উপস্থিত রয়েছে (ডোমটিতে)। উভয় ক্ষেত্রেই ট্যাগ পর স্ক্রিপ্ট রাখুন, বা না হওয়া পর্যন্ত নথি সম্পূর্ণরূপে লোড হওয়ার অপেক্ষা করুন (যেমন একটি onload ফাংশন ব্যবহার jQuery ready()
বা http://www.webreference.com/programming/javascript/onloads/ )
এটি কাজ করবে না:
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'your tip has been submitted!';
</script>
<label id="lbltipAddedComment">test</label>
এটি কাজ করবে:
<label id="lbltipAddedComment">test</label>
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'your tip has been submitted!';
</script>
এই উদাহরণটি (jsfizz লিঙ্ক) অর্ডার বজায় রাখে (প্রথমে স্ক্রিপ্ট, তারপরে লেবেল) এবং একটি অনলোড ব্যবহার করে:
<label id="lbltipAddedComment">test</label>
<script>
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
addLoadEvent(function() {
document.getElementById('lbltipAddedComment').innerHTML = 'your tip has been submitted!';
});
</script>
আপনি চেষ্টা করেছেন .innerText
বা .value
পরিবর্তে .innerHTML
?
.value
জন্যlabel
.text('Your Text')
কারণ কোনও স্ক্রিপ্ট কার্যকর করা হলে একটি লেবেল উপাদান লোড হয় না। লেবেল এবং স্ক্রিপ্ট উপাদানগুলি অদলবদল করুন এবং এটি কাজ করবে:
<label id="lbltipAddedComment"></label>
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
.textContent
পরিবর্তে ব্যবহার করুন।
আমি এটি চেষ্টা না করা পর্যন্ত আমি পাশাপাশি একটি লেবেলের মান পরিবর্তনের সাথেও লড়াই করে যাচ্ছিলাম।
যদি এই প্রশ্নের সমাধান console.dir
হিসাবে এই কনসোলটিতে লগ ইন করে আপনি কী বৈশিষ্ট্যগুলি সেট করতে পারেন তা দেখার জন্য যদি কোনও বিষয়টি পর্যবেক্ষণ করার চেষ্টা না করে: আমি কীভাবে কোনও জাভাস্ক্রিপ্ট অবজেক্ট হিসাবে এইচটিএমএল উপাদান লগ করতে পারি?
"enter info here:"
নিচের অংশ: <label id='myLabel'>enter info here:<input type='text' id='inp'/></label>
। শুধু .textContent
কাজ, এবং কেউই .innerHTML
, .innerText
বা .value
কাজ করেন। (অস্বীকৃতি: আমি কেবল ক্রোমে চেক করেছি))
.textContent
এবং .innerText
(পড়ার জন্য জরিমানা করার সময়), লেখার জন্য আমার ফায়ার ফক্স 60 এর জন্য কাজ করেনি (এটি এম্বেডড ইনপুট ক্ষেত্রটিও মুছে ফেলেছিল .innerHTML
)। সুতরাং আমাকে অবলম্বন করতে হয়েছিল document.getElementById('myLabel').childNodes[0].nodeValue="new label text"
(অবশ্যই, সূচকটি তখন 0 এর বাইরে অন্য কিছু হতে পারে, যা কিছুটা ক্লডগি তবে এটি আমার জন্য কাজ করেছিল)
এখানে jQuery ব্যবহার করে একটি লেবেলের পাঠ্য পরিবর্তন করার আরও একটি উপায় রয়েছে:
<script>
$("#lbltipAddedComment").text("your tip has been submitted!");
</script>
পরীক্ষা করে দেখুন JsFiddle উদাহরণ
এটা চেষ্টা কর:
<label id="lbltipAddedComment"></label>
<script type="text/javascript">
document.getElementById('<%= lbltipAddedComment.ClientID %>').innerHTML = 'your tip has been submitted!';
</script>