এইচটিএমএল সংগ্রহ, নোডলিস্ট এবং বস্তুর অ্যারের মধ্যে পার্থক্য


94

এটি যখন ডম এর আসে তখন আমি সবসময় এইচটিএমএল সংগ্রহগুলি, অবজেক্টস এবং অ্যারেগুলির মধ্যে বিভ্রান্ত হয়ে পড়েছিলাম। এই ক্ষেত্রে...

  1. মধ্যে পার্থক্য কি document.getElementsByTagName("td")এবং $("td")?
  2. $("#myTable")এবং $("td")অবজেক্টস (jQuery অবজেক্ট)। কেন কনসোল.লগ তাদের পাশে থাকা ডিওএম উপাদানগুলির অ্যারে প্রদর্শন করছে এবং তারা কী বস্তু নয় এবং একটি অ্যারে নয়?
  3. অধরা "নোডলিস্টগুলি" কী সম্পর্কে এবং আমি কীভাবে এটি নির্বাচন করব?

দয়া করে নীচের স্ক্রিপ্টটির কোনও ব্যাখ্যা দিন।

ধন্যবাদ

[123,"abc",321,"cba"]=[123,"abc",321,"cba"]
{123:123,abc:"abc",321:321,cba:"cba"}=Object { 123=123, abc="abc", 321=321, more...}
Node= Node { ELEMENT_NODE=1, ATTRIBUTE_NODE=2, TEXT_NODE=3, more...}
document.links= HTMLCollection[a #, a #]
document.getElementById("myTable")= <table id="myTable">
document.getElementsByClassName("myRow")= HTMLCollection[tr.myRow, tr.myRow]
document.getElementsByTagName("td")= HTMLCollection[td, td, td, td]
$("#myTable")= Object[table#myTable]
$("td")= Object[td, td, td, td]


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
        <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> 
        <title>Collections?</title>  
        <script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script> 
        <script type="text/javascript">
            $(function(){
                console.log('[123,"abc",321,"cba"]=',[123,"abc",321,"cba"]);
                console.log('{123:123,abc:"abc",321:321,cba:"cba"}=',{123:123,abc:"abc",321:321,cba:"cba"});
                console.log('Node=',Node);
                console.log('document.links=',document.links);
                console.log('document.getElementById("myTable")=',document.getElementById("myTable"));
                console.log('document.getElementsByClassName("myRow")=',document.getElementsByClassName("myRow"))
                console.log('document.getElementsByTagName("td")=',document.getElementsByTagName("td"));
                console.log('$("#myTable")=',$("#myTable"));
                console.log('$("td")=',$("td"));
            });
        </script>
    </head>

    <body>
        <a href="#">Link1</a>
        <a href="#">Link2</a>
        <table id="myTable">
            <tr class="myRow"><td>td11</td><td>td12</td></tr>
            <tr class="myRow"><td>td21</td><td>td22</td></tr>
        </table>
    </body> 
</html>

আমি মনে করি আমি উত্তরোত্তরগুলির জন্য নিম্নলিখিতগুলি যুক্ত করতে পারি। (ক) আধুনিক জাভাস্ক্রিপ্টে, আরও ভাল তুলনা হবে document.querySelectorAll('td')এবং এর মধ্যে $('td')। (খ) মূল পার্থক্য হ'ল jQuery তার নিজস্ব ধরণের অবজেক্টের সাথে কাজ করে যা অন্যান্য বিষয়গুলির মধ্যে এইচটিএমএল উপাদানগুলির একটি সংখ্যক সংগ্রহ রয়েছে; এই সংগ্রহটি উপরের কোনওটি নয় এবং jQuery অবজেক্টটি মূলত সত্য DOM উপাদানগুলির চারপাশে একটি মোড়ক
মানঙ্গো

উত্তর:


113

প্রথমে আমি NodeListএবং এর মধ্যে পার্থক্যটি ব্যাখ্যা করব HTMLCollection

উভয় ইন্টারফেস ডিওএম নোডের সংগ্রহ । তারা যে পদ্ধতিগুলি সরবরাহ করে এবং যে ধরণের নোড থাকতে পারে তার মধ্যে এগুলি পৃথক। কিছুদিনের NodeListকোনো নোড টাইপ ধারণ করতে পারে, একটি HTMLCollectionমাত্র উপাদান নোড ধারণ অনুমিত হয়।
একটি HTMLCollectionএকই পদ্ধতিগুলি সরবরাহ করে যা একটি পদ্ধতি হিসাবে NodeListপরিচিত হয় namedItem

সংগ্রহগুলি সর্বদা ব্যবহৃত হয় যখন একাধিক নোডগুলিতে অ্যাক্সেস সরবরাহ করতে হয়, উদাহরণস্বরূপ বেশিরভাগ নির্বাচক পদ্ধতিগুলি (যেমন getElementsByTagName) একাধিক নোড ফেরত দেয় বা সমস্ত শিশুদের রেফারেন্স পেয়ে থাকে ( element.childNodes)।

আরও তথ্যের জন্য, ডিওএম 4 স্পেসিফিকেশন - সংগ্রহগুলি দেখুন

মধ্যে পার্থক্য কি document.getElementsByTagName("td")এবং $("td")?

getElementsByTagNameDOM ইন্টারফেসের পদ্ধতি। এটি ইনপুট হিসাবে ট্যাগ নাম গ্রহণ করে এবং একটি HTMLCollection( DOM4 স্পেসিফিকেশন দেখুন ) প্রদান করে।

$("td")সম্ভবত jQuery হয়। এটি কোনও বৈধ সিএসএস / jQuery নির্বাচনকারী গ্রহণ করে এবং একটি jQuery অবজেক্ট প্রদান করে।

স্ট্যান্ডার্ড ডিওএম সংগ্রহ এবং jQuery নির্বাচনের মধ্যে সবচেয়ে বড় পার্থক্য হ'ল DOM সংগ্রহগুলি সাধারণত লাইভ হয় (সমস্ত পদ্ধতি যদিও সরাসরি লাইভ সংগ্রহ দেয় না), অর্থাত্ DOM এর কোনও পরিবর্তনগুলি প্রভাবিত হলে সংগ্রহগুলিতে প্রতিফলিত হয়। এগুলি ডিওএম গাছের মতো দেখার মতো , যেখানে ফাংশনটি ডাকা হওয়ার মুহুর্তে jQuery নির্বাচনগুলি ডিওএম গাছের স্ন্যাপশট।

কেন কনসোল.লগ তাদের পাশে থাকা ডিওএম উপাদানগুলির অ্যারে প্রদর্শন করছে এবং তারা কী বস্তু নয় এবং একটি অ্যারে নয়?

jQuery অবজেক্টগুলি অ্যারের মতো অবজেক্টস, অর্থাত্ তাদের সাংখ্যিক বৈশিষ্ট্য এবং একটি lengthসম্পত্তি রয়েছে (মনে রাখবেন অ্যারেগুলি কেবল নিজেরাই বস্তু objects ব্রাউজারগুলিতে অ্যারে এবং অ্যারের মতো অবজেক্টগুলিকে একটি বিশেষ উপায়ে, যেমন প্রদর্শন করা হয় [ ... , ... , ... ]

অধরা "নোডলিস্টগুলি" কী সম্পর্কে এবং আমি কীভাবে এটি নির্বাচন করব?

আমার উত্তরের প্রথম অংশটি দেখুন। আপনি গুলি নির্বাচন করতে পারবেন না NodeList, এগুলি নির্বাচনের ফলাফল

আমি যতদূর জানি NodeListপ্রোগ্র্যাম্যাটিকভাবে তৈরির উপায় নেই (যেমন একটি খালি তৈরি করা এবং পরে নোড যুক্ত করা), সেগুলি কেবল কয়েকটি ডিওএম পদ্ধতি / বৈশিষ্ট্য দ্বারা ফিরে আসে।


4
@ ব্যবহারকারী 1032531: ঠিক আছে, আপনি যদি নির্বাচিত ডিওএম উপাদানগুলির একটিতে (যেমন একটি শিশু যুক্ত করা) কোনও পরিবর্তন করেন, তবে অবশ্যই অবশ্যই পরিবর্তনটি দেখতে পাবেন যেহেতু এটি এক এবং একই ডিওএম উপাদান। তবে, ধরে নিলেন যে আপনি সমস্ত tdউপাদান নির্বাচন করেছেন , tdপরবর্তী সময়ে একটি নতুন উপাদান যুক্ত করা হলে নতুন উপাদানটি ধারণ করে স্বয়ংক্রিয়ভাবে নির্বাচন আপডেট করা হবে না।
ফেলিক্স ক্লিং

4
@FelixKling: আপনি উল্লেখ করা উচিত যে, সমস্ত NodeListগুলি লাইভ।
বার্গি

4
আমি আশা করি তারা সকলেই অ্যারে ছিলেন
সুপারউবারডুপার

7
এটিও মনে হয় যে পদ্ধতিগুলি "কী", "এন্ট্রি" এবং "ফরএচ" আমি নোডলিস্টে উপস্থাপন করে তবে এইচটিএমএল কালেকশনে অনুপস্থিত
ক্রিজিসটফ গ্রিজিবেক

4
@ ক্রিজিসটফ গ্রিজিবেক এটি সঠিক এবং এটি অত্যন্ত বিরক্তিকর। কেন তাদের একজনের হেক আছে .forEach()এবং অন্যটি নেই?
রোবো রোবক

30

0. একটি HTMLCollectionএবং একটি মধ্যে পার্থক্য কি NodeList?

এখানে আপনার জন্য কিছু সংজ্ঞা দেওয়া আছে।

ডোম লেভেল 1 স্পেস - বিবিধ বিষয় সংজ্ঞা :

ইন্টারফেস এইচটিএমএল সংগ্রহ

এইচটিএমএল সংগ্রহটি নোডের একটি তালিকা। একটি পৃথক নোড হয় অর্ডিনাল ইনডেক্স বা নোডের নাম বা আইডি বৈশিষ্ট্য দ্বারা অ্যাক্সেস করা যেতে পারে। দ্রষ্টব্য: এইচটিএমএল ডিওএমে সংগ্রহগুলি লাইভ হিসাবে ধরে নেওয়া হয় যার অর্থ অন্তর্নিহিত নথিটি পরিবর্তিত হলে সেগুলি স্বয়ংক্রিয়ভাবে আপডেট হয়।

ডোম স্তর 3 স্পেস - নোডলিস্ট

ইন্টারফেস নোডলিস্ট

নোডলিস্ট ইন্টারফেসটি এই সংগ্রহটি কীভাবে কার্যকর করা হয় তা সংজ্ঞায়িত বা সীমাবদ্ধ না করে নোডগুলির একটি আদেশযুক্ত সংগ্রহের বিমূর্ততা সরবরাহ করে। ডিওমে নোডলিস্ট বস্তুগুলি লাইভ।

নোডলিস্টে থাকা আইটেমগুলি 0 থেকে শুরু করে একটি অবিচ্ছেদ্য সূচকের মাধ্যমে অ্যাক্সেসযোগ্য।

সুতরাং তারা উভয়তে লাইভ ডেটা থাকতে পারে যার অর্থ DOM আপডেট হবে যখন তাদের মানগুলি করবে। এগুলিতে বিভিন্ন ধরণের ফাংশন রয়েছে।

আপনি স্ক্রিপ্টগুলি চালনা করেন যদি আপনি কনসোলটি পরিদর্শন করেন তবে আপনি নোট করবেন যে tableডোম উপাদানটিতে a childNodes NodeList[2]এবং a উভয় রয়েছে children HTMLCollection[1]। তারা আলাদা কেন? যেহেতু HTMLCollectionকেবলমাত্র উপাদান নোড থাকতে পারে, নোডলিস্টে একটি পাঠ্য নোডও রয়েছে।

এখানে চিত্র বর্ণনা লিখুন

1. document.getElementsByTagName("td")এবং এর মধ্যে পার্থক্য কী $("td")?

document.getElementsByTagName("td")আয় DOM উপাদানে একটি অ্যারের (ক NodeList), $("td")একটি jQuery বস্তুর থেকে উপাদানগুলি রয়েছে বলা হয় document.getElementsByTagName("td")তার সম্পত্তি উপর 0, 1, 2, ইত্যাদি মূল পার্থক্য যে jQuery বস্তুর একটু পুনরুদ্ধার করতে ধীর কিন্তু সব কুশলী এক্সেস দেয় jQuery ফাংশন।

২. $("#myTable")এবং $("td")হ'ল অবজেক্টস ( jQueryঅবজেক্ট)। console.logতাদের পাশে থাকা ডিওএম উপাদানগুলির অ্যারেও কেন দেখানো হচ্ছে এবং তারা কী বস্তু নয় এবং একটি অ্যারে নয়?

তারা তাদের ওয়েবসাইটের সাথে বস্তু 0, 1, 2, ইত্যাদি DOM উপাদানে নির্ধারণ করুন। এটি একটি সহজ উদাহরণ: এটি কীভাবে কাজ করে তা সম্পর্কে:

jsFizz

    var a = {
        1: "first",
        2: "second"
    }
    alert(a[1]);

৩. অধরা "নোডলিস্টগুলি" কী এবং আমি কীভাবে এটি নির্বাচন করব?

আপনি তাদের আপনার কোড এ পুনরুদ্ধার করা হয়েছে, getElementsByClassNameএবং getElementsByTagNameউভয়ই NodeListএস

নোডলিস্ট


আপনার তৃতীয় প্রতিক্রিয়ায় আপনি কীভাবে ডোম প্রদর্শন করলেন? ধন্যবাদ!
ব্যবহারকারী 1032531

@ user1032531 এটি ক্রোম ডেভ সরঞ্জাম tools উপায় দ্বারা আমি উত্তর শুরু আপডেট।
ড্যানিয়েল ইমস

অ্যারের মতো লগ বেশিরভাগ lengthসংখ্যার সম্পত্তি নাম নয়, সম্পত্তির ফলাফল । এবং আপনার স্ট্রিংকে সতর্ক করার উদাহরণটির সাথে console.logকী সম্পর্ক আছে ?
বার্গি

এটি দেখিয়েছিল যে কীভাবে আপনার অবজেক্টে সংখ্যাসূচক বৈশিষ্ট্য থাকতে পারে। আমি সত্যকে জোর দেওয়ার চেষ্টা করছি যে তারা অ্যারে নয়, বস্তু।
ড্যানিয়েল ইমস

9

অতিরিক্ত নোট

এইচটিএমএল সংগ্রহ এবং নোডলিস্টের মধ্যে পার্থক্য কী?

একজন HTMLCollection শুধুমাত্র উপাদান নোড (ধারণ ট্যাগ ) এবং একটি NodeList সব রয়েছে নোড

নোডের চার প্রকার রয়েছে:

  1. উপাদান নোড
  2. বৈশিষ্ট্য নোড
  3. পাঠ্য নোড
  4. মন্তব্য নোড

নোডটাইপস

উপাদানগুলির ভিতরে সাদা স্থানকে পাঠ্য হিসাবে বিবেচনা করা হয়, এবং পাঠকে নোড হিসাবে বিবেচনা করা হয়।

নিম্নোক্ত বিবেচনা কর:

<ul id="myList">
  <!-- List items -->
  <li>List item 1</li> 
  <li>List item 2</li>
  <li>List item 3</li>
  <li>List item 4</li>
  <li>List item 5</li>
</ul>

সাদা স্থান: <ul id="myList"> <li>List item</li></ul>

কোন সাদা জায়গা নেই: <ul id="myList"><li>List item</li></ul>

এইচটিএমএল সংগ্রহ এবং একটি নোডলিস্টের মধ্যে পার্থক্য


2

$("td")jQuery অবজেক্ট প্রসারিত এবং এটিতে jQuery পদ্ধতি রয়েছে, এটি jquery অবজেক্টটি প্রদান করে যা এইচটিএমএল অবজেক্টগুলির অ্যারে ধারণ করে। document.getElementsByTagName("td")কাঁচা জেএস পদ্ধতি এবং নোডলিস্ট প্রদান করে। এই নিবন্ধটি দেখুন


ধন্যবাদ করাকসুনা। হ্যাঁ, আমি নিবন্ধটি দেখেছি। এটি সাহায্য করেছে কিনা তা জানেন না তবে অবশ্যই আমাকে আরও প্রশ্ন জিজ্ঞাসা করেছেন :)
ব্যবহারকারীর 1032531

ধন্যবাদ @ ক্যারাক্সুনা। দরকারী নিবন্ধ, খুব ভাল ব্যাখ্যা।
জিউসেপে

0

NodeList বস্তু নোড এর সংগ্রহ, এক্স উদাহরণস্বরুপ ফিরিয়ে আনা হয়। চাইল্ডনোডস সম্পত্তি বা ডকুমেন্ট.কোয়ারী নির্বাচনকারী সমস্ত () পদ্ধতি। কিছু ক্ষেত্রে, নোডলিস্ট লাইভ , যার অর্থ ডিওমে পরিবর্তনগুলি স্বয়ংক্রিয়ভাবে সংগ্রহ আপডেট করে! উদাহরণস্বরূপ, নোড.চাইল্ড নোডগুলি লাইভ:

var c = parent.childNodes; //assume c.length is 2
parent.appendChild(document.createElement('div'));
//now c.length is 3, despite the `c` variable is assigned before appendChild()!!
//so, do not cache the list's length in a loop.

তবে অন্য কিছু ক্ষেত্রে, নোডলিস্ট স্থিতিশীল , যেখানে ডিওমে কোনও পরিবর্তন সংগ্রহের বিষয়বস্তুকে প্রভাবিত করে না। ক্যোয়ারী নির্বাচনকারী সমস্ত () একটি স্ট্যাটিক নোডলিস্ট প্রদান করে।

দ্য HTMLCollection একটি হল লাইভ এবং আদেশ (এটা স্বয়ংক্রিয়ভাবে অন্তর্নিহিত দলিল পরিবর্তিত হয় আপডেট করা হয়) উপাদানের সংগ্রহ। এটা তোলে মতো বৈশিষ্ট্য ফলও হতে পারে শিশু বা মত পদ্ধতি document.getElementsByTagName () , এবং পারা কেবলমাত্র HTMLElement এর তাদের আইটেম হিসাবে ।

এইচটিএমএল সংগ্রহও এর সদস্যদের নাম এবং সূচক উভয় দ্বারা সরাসরি সম্পত্তি হিসাবে প্রকাশ করে:

var f = document.forms; // this is an HTMLCollection
f[0] === f.item(0) === f.myForm //assume first form id is 'myForm'

এইচটিএমলেমেন্টটি কেবল এক ধরণের নোড:

নোড << এইচটিএমলেমেন্ট উত্তরাধিকার

নোড বিভিন্ন ধরণের হতে পারে । সর্বাধিক গুরুত্বপূর্ণগুলি নিম্নরূপ:

  • উপাদান (1): একটি এলিমেন্ট নোড যেমন <p>বা<div>
  • গুণ (2): একটি উপাদান একটি গুণ। উপাদান বৈশিষ্ট্যগুলি আর ডোম 4 স্পেসিফিকেশনে নোড ইন্টারফেস প্রয়োগ করছে না!
  • পাঠ্য (3): উপাদান বা গুণকের আসল পাঠ্য।
  • মন্তব্য (8): একটি মন্তব্য নোড।
  • নথি (9): একটি নথি নোড

সুতরাং, একটি বড় পার্থক্য হ'ল এইচটিএমএল সংগ্রহের মধ্যে কেবল এইচটিএমলেট উপাদান রয়েছে তবে নোডলিস্টে মন্তব্য, সাদা-স্পেস টেক্সট (ক্যারেজ রিটার্ন অক্ষর, স্পেসস ..) ইত্যাদি রয়েছে, ইত্যাদি নিম্নলিখিত স্নিপেট হিসাবে এটি পরীক্ষা করুন:

function printList(x, title) {
  console.log("\r\nprinting "+title+" (length="+x.length+"):");
  for(var i=0; i<x.length; i++) {
    console.log("  "+i+":"+x[i]);
  }
}

var elems = document.body.children; //HTMLCollection
var nodes = document.body.childNodes; //NodeList

printList(elems, "children [HTMLCollection]");
printList(nodes, "childNodes [NodeList]");
<div>para 1</div><!-- MyComment -->
<div>para 2</div>

এইচটিএমএল সংগ্রহ এবং নোডলিস্ট উভয়টিতেই আপনি তাদের আইটেমগুলি লুপ করতে ব্যবহার করতে পারেন এমন দৈর্ঘ্যের সম্পত্তি রয়েছে । নোডলিস্টে আইটেমগুলি গণনা করার জন্য ... বা প্রত্যেকের জন্য ... ব্যবহার করবেন না, যেহেতু তারা এর দৈর্ঘ্য এবং আইটেমের বৈশিষ্ট্যগুলিও গণনা করবে এবং ত্রুটি সৃষ্টি করবে যদি আপনার স্ক্রিপ্টটি ধরে নেয় যে এটি কেবলমাত্র উপাদানগুলির সাথে কাজ করে। এছাড়াও, for..in কোনও নির্দিষ্ট ক্রমে সম্পত্তিগুলি দেখার গ্যারান্টিযুক্ত নয়।

for (var i = 0; i < myNodeList.length; i++) {
  var item = myNodeList[i];
}

0

ইতিমধ্যে অনেক কিছু বলা হয়ে গেছে, তবে HTMLCollectionএবং এর মধ্যে পার্থক্যগুলি ব্যাখ্যা করার জন্য উত্তরের একটি আরও সংক্ষিপ্ত সংস্করণ বলেছিলNodeList

ডিওমে নোডের প্রকার

  • বিভিন্ন নোডের 12 টি ধরণের রয়েছে, যার বিভিন্ন নোডের শিশু থাকতে পারে:

এখানে চিত্র বর্ণনা লিখুন

  • আমরা ডিওমে নোডগুলি পরীক্ষা এবং অনুসন্ধানের জন্য নিম্নলিখিত তিনটি বৈশিষ্ট্য ব্যবহার করতে পারি:

    • nodeType সম্পত্তি
    • nodeName সম্পত্তি
    • nodeValue সম্পত্তি
  • nodeTypeসম্পত্তি নোড ধরন, একটি সংখ্যা হিসাবে নির্দিষ্ট নোডের ফেরৎ।

    • নোড একটি উপাদান নোড হয়, nodeTypeসম্পত্তি 1 ফিরে আসবে ।
    • নোড যদি একটি গুনযুক্ত নোড হয় তবে nodeTypeসম্পত্তিটি 2 ফিরে আসবে ।
    • নোডটি যদি কোনও পাঠ্য নোড হয় তবে nodeTypeসম্পত্তিটি 3 ফিরে আসবে ।
    • নোডটি যদি একটি মন্তব্য নোড হয় তবে nodeTypeসম্পত্তিটি 8 ফিরে আসবে ।
    • এই সম্পত্তিটি কেবল পঠনযোগ্য।

এইচটিএমএল সংগ্রহ সংগ্রহ বনাম নোডলিস্ট

এখানে চিত্র বর্ণনা লিখুন

আমরা মধ্যে পার্থক্য বুঝতে পারেন HTMLCollectionএবং NodeListআরও স্পষ্টভাবে নিম্নলিখিত উদাহরণে সঙ্গে। আরও ভাল বোঝার জন্য দয়া করে আপনার নিজের ব্রাউজার কনসোলের আউটপুটগুলি পরীক্ষা করার চেষ্টা করুন।

<ul>
  <li>foo</li>
  <li>bar</li>
  <li>bar</li>
</ul>
// retrieve element using querySelectorAll
const listItems_querySelector = document.querySelectorAll('li');
console.log('querySelector', listItems_querySelector);

// retrieve element using childNodes
const list  = document.querySelector('ul')
const listItems_childNodes = list.childNodes;
console.log('childNodes', listItems_childNodes);
const listItems_children = list.children;
console.log('children', listItems_children);

const listItems_getElementsByTagName = document.getElementsByTagName('li');
console.log('getElementsByTagName', listItems_getElementsByTagName);

console.log('*************************');
console.log('add one list item');
console.log('*************************');
list.appendChild(document.createElement('li'));

console.log('querySelector', listItems_querySelector);
console.log('childNodes', listItems_childNodes);
console.log('children', listItems_children);
console.log('getElementsByTagName', listItems_getElementsByTagName);

console.log('*************************');
console.log('add one more list item');
console.log('*************************');
listItems_getElementsByTagName[0].parentNode.appendChild(document.createElement('li'));

console.log('querySelector', listItems_querySelector);
console.log('childNodes', listItems_childNodes);
console.log('children', listItems_children);
console.log('getElementsByTagName', listItems_getElementsByTagName); 
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.