উত্তর:
বুঝুন যে .childrenএকটি একটি সম্পত্তি উপাদান । 1 কেবলমাত্র উপাদান রয়েছে .childrenএবং এই শিশুরা সব ধরণের উপাদান রয়েছে। 2
তবে নোডের.childNodes সম্পত্তি । যে কোনও নোড থাকতে পারে 3.childNodes
এর একটি দৃ concrete় উদাহরণ হ'ল:
let el = document.createElement("div");
el.textContent = "foo";
el.childNodes.length === 1; // Contains a Text node child.
el.children.length === 0; // No Element children.
বেশিরভাগ সময় আপনি ব্যবহার করতে চান .childrenকারণ সাধারণত আপনি পাঠ্য বা মন্তব্যে লুপ করতে চান না আপনার ডিওএম ম্যানিপুলেশনের নোডগুলি ।
আপনি যদি পাঠ্য নোডগুলি পরিচালনা করতে চান তবে আপনি সম্ভবত এর .textContentপরিবর্তে চান । 4
1. প্রযুক্তিগতভাবে, এটি প্যারেন্টনোডের একটি বৈশিষ্ট্য , এলিমেন্টের অন্তর্ভুক্ত একটি মিশ্রণ।
২. এগুলি সমস্ত উপাদান কারণ .childrenএকটি এইচটিএমএল সংগ্রহ , যাতে কেবল উপাদান থাকতে পারে।
৩. একইভাবে, .childNodesকোনও নোড ধরে রাখতে পারে কারণ এটি নোডলিস্ট ।
4. বা .innerText। পার্থক্য এখানে বা এখানে দেখুন ।
.children : jsfiddle.net/fbwbjvch/1
Element.childrenকেবলমাত্র মৌলিক শিশুদের Node.childNodesফিরিয়ে দেয় , যখন সমস্ত নোডের শিশুদের প্রদান করে। দ্রষ্টব্য যে উপাদানগুলি নোড, তাই উভয়ই উপাদানগুলিতে উপলব্ধ।
আমি বিশ্বাস করি childNodesআরও নির্ভরযোগ্য। উদাহরণস্বরূপ, এমডিসি (উপরে লিঙ্কযুক্ত) নোট করেছেন যে আইই কেবলমাত্র childrenআই 9 তে পেয়েছিল childNodesব্রাউজার বাস্তবায়নকারীদের দ্বারা ত্রুটির জন্য কম স্থান সরবরাহ করে।
.childrenমন্তব্য নোডগুলি ফিল্টার করে না, তবে এটি পাঠ্য নোডগুলি ফিল্টার করে।
.getElementsByTagName('*')। আইই কখনও কখনও বিরক্তিকর হতে পারে ...
childrenসেই সমর্থন IE এর শিম / পলফিল বাস্তবায়ন রয়েছে ।
এখন পর্যন্ত ভাল উত্তর, আমি কেবল যুক্ত করতে চাই যে আপনি ব্যবহার করে নোডের ধরণটি পরীক্ষা করতে পারেন nodeType:
yourElement.nodeType
এটি আপনাকে পূর্ণসংখ্যা দেবে: ( এখান থেকে নেওয়া )
| Value | Constant | Description | |
|-------|----------------------------------|---------------------------------------------------------------|--|
| 1 | Node.ELEMENT_NODE | An Element node such as <p> or <div>. | |
| 2 | Node.ATTRIBUTE_NODE | An Attribute of an Element. The element attributes | |
| | | are no longer implementing the Node interface in | |
| | | DOM4 specification. | |
| 3 | Node.TEXT_NODE | The actual Text of Element or Attr. | |
| 4 | Node.CDATA_SECTION_NODE | A CDATASection. | |
| 5 | Node.ENTITY_REFERENCE_NODE | An XML Entity Reference node. Removed in DOM4 specification. | |
| 6 | Node.ENTITY_NODE | An XML <!ENTITY ...> node. Removed in DOM4 specification. | |
| 7 | Node.PROCESSING_INSTRUCTION_NODE | A ProcessingInstruction of an XML document | |
| | | such as <?xml-stylesheet ... ?> declaration. | |
| 8 | Node.COMMENT_NODE | A Comment node. | |
| 9 | Node.DOCUMENT_NODE | A Document node. | |
| 10 | Node.DOCUMENT_TYPE_NODE | A DocumentType node e.g. <!DOCTYPE html> for HTML5 documents. | |
| 11 | Node.DOCUMENT_FRAGMENT_NODE | A DocumentFragment node. | |
| 12 | Node.NOTATION_NODE | An XML <!NOTATION ...> node. Removed in DOM4 specification. | |
মজিলা অনুযায়ী নোট করুন :
নিম্নলিখিত ধ্রুবকগুলি অবচিত করা হয়েছে এবং এটি আর ব্যবহার করা উচিত নয়: নোড.এটিটিআরআইবিউটিস ননডে, নোড.এন্টিটি_এফটিএনসি_এনওডি, নোড.এনটিটি_নোডি, নোড.নোটেশন_নোডি
আমি প্যারেন্টনোড.চাইল্ডেনদের সাথে যাব :
এটি উপলব্ধ করা হিসাবে namedItemপদ্ধতি যে আমাকে দেয় সরাসরি সব শিশুদের মাধ্যমে looping বা ব্যবহার করতে এড়ানো ছাড়া শিশুদের উপাদান এক পেতে getElementByIdইত্যাদি
যেমন
ParentNode.children.namedItem('ChildElement-ID'); // JS
ref.current.children.namedItem('ChildElement-ID'); // React
this.$refs.ref.children.namedItem('ChildElement-ID'); // Vue
আমি নোড.চাইল্ড নোডের সাথে যাব :
এটি উপলব্ধ করা হিসাবে forEachযখন আমি সঙ্গে কাজ পদ্ধতি window.IntersectionObserver
যেমন
nodeList.forEach((node) => { observer.observe(node) })
// IE11 does not support forEach on nodeList, but easy to be polyfilled.
ক্রোম 83 এ
Node.childNodes প্রদান করে
entries,forEach,item,keys,lengthএবংvaluesParentNode.children প্রদান করে
item,lengthএবংnamedItem