আমি অজ্যাক্সটি ডিভ উপাদানটির সাথে ডেটা যুক্ত করার জন্য ব্যবহার করছি, যেখানে আমি জাভাস্ক্রিপ্ট থেকে ডিভিটি পূরণ করব, ডিভের সাথে পাওয়া পূর্ববর্তী ডেটা না হারিয়ে আমি কীভাবে ডিভিতে নতুন ডেটা যুক্ত করতে পারি?
আমি অজ্যাক্সটি ডিভ উপাদানটির সাথে ডেটা যুক্ত করার জন্য ব্যবহার করছি, যেখানে আমি জাভাস্ক্রিপ্ট থেকে ডিভিটি পূরণ করব, ডিভের সাথে পাওয়া পূর্ববর্তী ডেটা না হারিয়ে আমি কীভাবে ডিভিতে নতুন ডেটা যুক্ত করতে পারি?
উত্তর:
এটা চেষ্টা কর:
var div = document.getElementById('divID');
div.innerHTML += 'Extra stuff';
divইভেন্ট শ্রোতার সাথে উপাদান বা ব্যবহারকারী-প্রবেশ করা পাঠ্যের ইনপুটগুলির ক্ষেত্রেও কাজ করবে না । আমি চন্ডু দ্বারা উত্তর প্রস্তাব ।
অ্যাপেন্ডচাইল্ড ব্যবহার করে:
var theDiv = document.getElementById("<ID_OF_THE_DIV>");
var content = document.createTextNode("<YOUR_CONTENT>");
theDiv.appendChild(content);
অভ্যন্তরীণ এইচটিএমএল ব্যবহার করে:
এই পদ্ধতিটি @BiAiB দ্বারা উল্লিখিত হিসাবে বিদ্যমান উপাদানগুলির সকল শ্রোতাকে সরিয়ে ফেলবে। তাই আপনি যদি এই সংস্করণটি ব্যবহার করার পরিকল্পনা করছেন তবে সাবধানতা অবলম্বন করুন।
var theDiv = document.getElementById("<ID_OF_THE_DIV>");
theDiv.innerHTML += "<YOUR_CONTENT>";
createTextNodeআপনি এইচটিএমএল লোড করা থাকলে কাজ করবে না। আপনি যদি তালিকা আইটেম যুক্ত করতে চান, উদাহরণস্বরূপ, এটি কাজ করবে না। এটা বেশ সীমাবদ্ধ।
সাবধানতা অবলম্বন করুন innerHTML, আপনি যখন এটি ব্যবহার করেন তখন সাজানোর কোনও ক্ষতি :
theDiv.innerHTML += 'content',
এর সমতুল্য:
theDiv.innerHTML = theDiv.innerHTML + 'content'
যা আপনার অভ্যন্তরের সমস্ত নোডকে ধ্বংস করবে divএবং নতুনগুলি পুনরায় তৈরি করবে। এর অভ্যন্তরের উপাদানগুলির সমস্ত উল্লেখ এবং শ্রোতা নষ্ট হবে ।
আপনার যদি এগুলি রাখার প্রয়োজন হয় (উদাহরণস্বরূপ, আপনি যখন একটি ক্লিক হ্যান্ডলার সংযুক্ত করেছেন), আপনাকে ডিওএম ফাংশন (অ্যাপেন্ডচিল্ড, ইনসার্টএফটার, ইনসার্ট বিটার) সহ নতুন সামগ্রীগুলি যুক্ত করতে হবে:
var newNode = document.createElement('div');
newNode.innerHTML = data;
theDiv.appendChild( newNode )
appendChildউপায়টি @ সাইবারনেট করেছিলেন
document.createTextNode()।
আপনি যদি এটি দ্রুত করতে চান এবং উল্লেখগুলি এবং শ্রোতাদের হারাতে না চান তবে ব্যবহার করুন: .insertAdjacentHTML () ;
"এটা উপাদান reparse নেই এটিতে ব্যবহার করা হচ্ছে এবং এইভাবে এটা আছে না দুর্নীতিগ্রস্ত বিদ্যমান উপাদান উপাদান ভিতরে। এই, এবং এটি ধারাবাহিকতাতে করতে অতিরিক্ত পদক্ষেপ এড়ানো অনেক দ্রুত সরাসরি innerHTML ম্যানিপুলেশন চেয়ে।"
সমস্ত মূললাইন ব্রাউজারগুলিতে সমর্থিত (আই 6 +, এফএফ 8 +, অন্যান্য অন্যান্য এবং মোবাইল): http://caniuse.com/#feat=insertadjacenthtml
Https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentH HTML থেকে উদাহরণ
// <div id="one">one</div>
var d1 = document.getElementById('one');
d1.insertAdjacentHTML('afterend', '<div id="two">two</div>');
// At this point, the new structure is:
// <div id="one">one</div><div id="two">two</div>
insertAdjacentElement()এবং insertAdjacentText()।
আপনি যদি jQuery ব্যবহার করেন তবে আপনি এটি ব্যবহার করতে পারেন $('#mydiv').append('html content')এবং এটি বিদ্যমান সামগ্রীটি রাখে।
এমনকি এটি কাজ করবে:
var div = document.getElementById('divID');
div.innerHTML += 'Text to append';
আইই 9 + (ভিস্তা +) সমাধান, নতুন পাঠ্য নোড তৈরি না করে:
var div = document.getElementById("divID");
div.textContent += data + " ";
তবে, প্রতিটি বার্তার পরে আমার একটি নতুন লাইনের প্রয়োজন হওয়ায় এটি আমার পক্ষে কৌশলটি পুরোপুরি কার্যকর করতে পারেনি, তাই আমার ডিআইভি এই কোড সহ একটি স্টাইলযুক্ত উলে পরিণত হয়েছে:
var li = document.createElement("li");
var text = document.createTextNode(data);
li.appendChild(text);
ul.appendChild(li);
Https://developer.mozilla.org/en-US/docs/Web/API/ নোড / টেক্সট কনটেন্ট থেকে :
অন্তর্বর্তী এইচটিএমএল থেকে পার্থক্য
ইনটারএইচটিএমএল এইচটিএমএল এর নাম হিসাবে ইঙ্গিত দেয়। বেশিরভাগ ক্ষেত্রে, কোনও উপাদানটির মধ্যে পাঠ্য পুনরুদ্ধার বা লেখার জন্য লোকেরা অভ্যন্তরীণ এইচটিএমএল ব্যবহার করে। পরিবর্তে টেক্সট কনটেন্ট ব্যবহার করা উচিত। কারণ পাঠ্যটি এইচটিএমএল হিসাবে বিশ্লেষণ করা হয়নি, এর আরও ভাল পারফরম্যান্স হওয়ার সম্ভাবনা রয়েছে। তদতিরিক্ত, এটি কোনও এক্সএসএস আক্রমণ ভেক্টর এড়িয়ে চলে ids
আপনি jQuery ব্যবহার করতে পারেন। যা এটি খুব সহজ করে তোলে।
কেবল আপনার এইচটিএমএলে jQuery যুক্ত jQuery ফাইলটি ডাউনলোড করুন
বা আপনি অনলাইন লিংকটি ব্যবহার করতে পারেন:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
এবং এটি চেষ্টা করুন:
$("#divID").append(data);
নিম্নলিখিত পদ্ধতিটি অন্যদের চেয়ে কম সাধারণ তবে আপনি যখন নিশ্চিত হন যে ডিভের শেষ সন্তানের নোড ইতিমধ্যে একটি পাঠ্য নোড। এমডিএন রেফারেন্স অ্যাপেন্ডডাটা ব্যবহার করে আপনি কোনও নতুন পাঠ্য নোড তৈরি করবেন নাappendData
let mydiv = document.getElementById("divId");
let lastChild = mydiv.lastChild;
if(lastChild && lastChild.nodeType === Node.TEXT_NODE ) //test if there is at least a node and the last is a text node
lastChild.appendData("YOUR TEXT CONTENT");
কেন শুধু সেটএট্রিবিউট ব্যবহার করবেন না?
thisDiv.setAttribute('attrName','data you wish to append');
তারপরে আপনি এই ডেটা পেতে পারেন:
thisDiv.attrName;
জাভা লিপি
document.getElementById("divID").html("this text will be added to div");
jQuery
$("#divID").html("this text will be added to div");
.html()আপনি প্রবেশ করেছেন তা দেখতে কোনও যুক্তি ছাড়াই ব্যবহার করুন । আপনি আপনার কোডে ব্যবহার করার আগে এই ফাংশনগুলি দ্রুত পরীক্ষা করতে ব্রাউজার কনসোলটি ব্যবহার করতে পারেন।