জাভাস্ক্রিপ্ট ব্যবহার করে লেবেল পাঠ্য পরিবর্তন করুন


90

নিম্নলিখিতগুলি আমার জন্য কেন কাজ করে না?

<script>
    document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>

4
উফ! দুঃখিত যে 'dont' হওয়া উচিত; 0
ফিল কাক

4
কারণ আপনি যখন স্ক্রিপ্টটি অভ্যন্তরীণ HTML পরিবর্তন করে লেবেলটি পরিবর্তন করার চেষ্টা করবেন, lbltipAddedComment আসলে পৃষ্ঠায় উপস্থিত নেই। লেবেলের পরে স্ক্রিপ্ট সন্নিবেশ করুন বা jquery use (নথি) ব্যবহার করুন। প্রস্তুত ()
অ্যান্ড্রু ওরসিচ

দুঃখিত, সম্পাদনা বোতামটি দেখেনি!
ফিল কাক

আমি এখানে প্রস্তাবিত সবকিছু চেষ্টা করেছিলাম তবে কিছুই আমার পক্ষে কার্যকর হয়নি।
রাজন মিশ্র

উত্তর:


137

কারণ আপনার স্ক্রিপ্টটি আগে চালিত হয় পৃষ্ঠায় লেবেল উপস্থিত রয়েছে (ডোমটিতে)। উভয় ক্ষেত্রেই ট্যাগ পর স্ক্রিপ্ট রাখুন, বা না হওয়া পর্যন্ত নথি সম্পূর্ণরূপে লোড হওয়ার অপেক্ষা করুন (যেমন একটি 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>

আমার মনে হয় .textConant উত্তরটি আসলে সঠিক
পল টেলর

4
ওয়েল পলটায়লর, এই উত্তরটি ২০১০ সাল থেকে এখানে এবং এখানে ৯২ টি আপভোট রয়েছে (এবং এখন, আপনার ডাউনওয়েট) প্রশ্ন অভ্যন্তরীণ এইচটিএমএল ব্যবহার করেছে তাই আমি কেবল তার কোডটি সরিয়ে আনতে প্রয়োজনীয় যা পরিবর্তন করেছি। যদিও আমি অনুভব করি যে অতিরিক্ত ধারণা ("আরে, বিটিডাব্লু, অভ্যন্তরীণ HTML / ইনটারনেক্সট পরিবর্তে টেক্সট কনটেন্ট ব্যবহার করুন) এর জন্য ওপি'র সমস্যা ছিল না ...
ডাউনওয়েট

ঠিক আছে তবে তিনি কি সর্বশেষ মন্তব্যটি পেয়েছিলেন তা হ'ল এটি কিছুই করেনি তাই এটি আমার বোঝা যাচ্ছিল যে আপনার সমাধানটি কাজ করে নি, সত্যিকার অর্থে আমার পক্ষে কাজ করে নি, এই jsfiddle.net/cfxrLpe9/4 টেক্সটসন্টেন্টের সাথে কাজ করে তবে অন্তর্দেশের HTML নয়, কেন এটি যে?
পল টেলর

@ পলটায়লর উত্তরটি সম্ভবত ওপি-র পক্ষে কাজ করেছে কারণ তিনি এই উত্তরটিকে স্বীকৃত হিসাবে চিহ্নিত করেছেন। আপনার কোডে একটি টাইপ আছে। উত্তরগুলি দেখায় আপনি অভ্যন্তরীণ HTML এর পরিবর্তে অভ্যন্তরীণ HTML ব্যবহার করছেন। jsfiddle.net/cfxrLpe9/6
র্যান্ডাল ফ্ল্যাগ

22

আপনি চেষ্টা করেছেন .innerTextবা .valueপরিবর্তে .innerHTML?


.innerText লেবেলের জন্য কাজ করে। আমার কাছে <হেড> এর মধ্যে স্ক্রিপ্ট ট্যাগ এবং <body> তে নকশা রয়েছে। ঘটনাচক্রে এটি আমার পক্ষে ভাল কাজ করে।
জয়

@ আশ্বিনজি আপনার মন্তব্যটি আমাকে কেবল বাঁচিয়েছে। আমি আমার মাথা দিয়ে প্রহার ছিল .valueজন্যlabel
Prabs

ব্যবহারের চেষ্টা.text('Your Text')
গোপন

15

কারণ কোনও স্ক্রিপ্ট কার্যকর করা হলে একটি লেবেল উপাদান লোড হয় না। লেবেল এবং স্ক্রিপ্ট উপাদানগুলি অদলবদল করুন এবং এটি কাজ করবে:

<label id="lbltipAddedComment"></label>
<script>
    document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>

4
ওহ, খেয়াল করেনি! হ্যাঁ, যদি পোস্ট কোডটি আসল কোডের প্রতিবিম্বিত হয় (ডকুমেন্টে আগুন জ্বালানোর জন্য জিকিউরি ব্যবহার করছে না ready প্রস্তুতি বা অনুরূপ) তবে এটি কারণ হিসাবে এটি কার্যকরভাবে কাজ করবে না।
গর্ডনএম

9

ব্যবহার করে .innerTextকাজ করা উচিত।

document.getElementById('lbltipAddedComment').innerText = 'your tip has been submitted!';

9

.textContentপরিবর্তে ব্যবহার করুন।

আমি এটি চেষ্টা না করা পর্যন্ত আমি পাশাপাশি একটি লেবেলের মান পরিবর্তনের সাথেও লড়াই করে যাচ্ছিলাম।

যদি এই প্রশ্নের সমাধান console.dirহিসাবে এই কনসোলটিতে লগ ইন করে আপনি কী বৈশিষ্ট্যগুলি সেট করতে পারেন তা দেখার জন্য যদি কোনও বিষয়টি পর্যবেক্ষণ করার চেষ্টা না করে: আমি কীভাবে কোনও জাভাস্ক্রিপ্ট অবজেক্ট হিসাবে এইচটিএমএল উপাদান লগ করতে পারি?


ধন্যবাদ. আমার সন্দেহ (তবে দৃ rig়ভাবে নিশ্চিত করা যায়নি) যে আমার ব্যবহারের ক্ষেত্রে প্রশ্নটির অনুরূপ: আমি নেস্টেড ইনপুট উপাদান রয়েছে এমন একটি লেবেলের পাঠ্য পুনরুদ্ধার এবং / অথবা পরিবর্তন করার চেষ্টা করছিলাম, যেমন আমি পুনরুদ্ধার করতে চেয়েছিলাম এবং / অথবা পরিবর্তন "enter info here:"নিচের অংশ: <label id='myLabel'>enter info here:<input type='text' id='inp'/></label>। শুধু .textContentকাজ, এবং কেউই .innerHTML, .innerTextবা .valueকাজ করেন। (অস্বীকৃতি: আমি কেবল ক্রোমে চেক করেছি))
অ্যান্ড্রু উইলিয়ামস

থ্যাঙ্কিও আমি একই সমস্যায় পড়েছি
পল টেলর

4
দুর্ভাগ্যক্রমে @ অ্যান্ড্রুউইলমস .textContentএবং .innerText(পড়ার জন্য জরিমানা করার সময়), লেখার জন্য আমার ফায়ার ফক্স 60 এর জন্য কাজ করেনি (এটি এম্বেডড ইনপুট ক্ষেত্রটিও মুছে ফেলেছিল .innerHTML)। সুতরাং আমাকে অবলম্বন করতে হয়েছিল document.getElementById('myLabel').childNodes[0].nodeValue="new label text"(অবশ্যই, সূচকটি তখন 0 এর বাইরে অন্য কিছু হতে পারে, যা কিছুটা ক্লডগি তবে এটি আমার জন্য কাজ করেছিল)
মতিজা নালিস


0

এটা চেষ্টা কর:

<label id="lbltipAddedComment"></label>
<script type="text/javascript"> 
      document.getElementById('<%= lbltipAddedComment.ClientID %>').innerHTML = 'your tip has been submitted!';
</script>

4
একটি সমাধানের একটি লিঙ্ক স্বাগত, তবে দয়া করে আপনার উত্তরটি কার্যকর না হওয়া নিশ্চিত করুন: লিঙ্কটির চারপাশে প্রসঙ্গ যুক্ত করুন যাতে আপনার সহ ব্যবহারকারীদের কিছু ধারণা থাকতে পারে এটি কী এবং কেন এটি রয়েছে, তারপরে আপনি পৃষ্ঠার সর্বাধিক প্রাসঙ্গিক অংশটি উদ্ধৃত করুন লক্ষ্য পৃষ্ঠাটি অনুপলব্ধ ক্ষেত্রে লিঙ্কটি পুনরায় সংযুক্ত করুন। লিঙ্কের চেয়ে সামান্য বেশি উত্তর মুছতে পারে।
paper1111

0

কারণ স্ক্রিপ্টটি প্রথমে কার্যকর হবে .. যখন স্ক্রিপ্টটি কার্যকর হবে, তখন নিয়ন্ত্রণগুলি লোড হচ্ছে না। নিয়ন্ত্রণ লোড করার পরে আপনি একটি স্ক্রিপ্ট লিখুন।

এটা কাজ করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.